2012-06-14 1 views
-1

Я использую HSImageSidebarView и в примере включены в проект с открытым исходным кодом, это как загрузить изображения в боковой панели:UIImage Сложность

-(UIImage *)sidebar:(HSImageSidebarView *)sidebar imageForIndex:(NSUInteger)anIndex { 
    int color = [[colors objectAtIndex:anIndex] intValue]; 
    switch (color % 3) { 
     case 0: 
      return [UIImage imageNamed:@"Blue"]; 
      break; 
     case 1: 
      return [UIImage imageNamed:@"Red"]; 
      break; 
     default: 
      return [UIImage imageNamed:@"Green"]; 

    } 
} 

Что моя проблема заключается в том, чтобы добавить свои собственные изображения от NSDocumentDirectory. Вот мой массив:

self.images = [NSMutableArray new]; 
for(int i = 0; i <= 100; i++) 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDir = [paths objectAtIndex:0]; 

    NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"Images%d.png", i]]; 
    NSLog(@"savedImagePath=%@",savedImagePath); 

    if([[NSFileManager defaultManager] fileExistsAtPath:savedImagePath]){ 
     [images addObject:[UIImage imageWithContentsOfFile:savedImagePath]]; 
     NSLog(@"file exists"); 
    } 
    NSLog(@"file does not exist"); 
} 

Спасибо за помощь!

+0

..anddd? В чем проблема? Правильно ли ваш 'savedImagePath'? Существует ли файл? И FYI, в вашем цикле, он будет говорить, что каждый раз «файл не существует», потому что вы не инкапсулировали его в оператор 'else'. – skram

+0

Мой массив в порядке. Какова моя проблема, я не знаю, как добавить ее в боковую панель '- (UIImage *): (HSImageSidebarView *) боковая панель imageForIndex: (NSUInteger) anIndex' – Bazinga

+0

, если вы проголосовали за меня, пожалуйста оставить комментарий – Bazinga

ответ

1

Сделал бы что-то вроде этого.

-(UIImage *)sidebar:(HSImageSidebarView *)sidebar imageForIndex:(NSUInteger)anIndex { 

    return (UIImage*)[self.images objectAtIndex:anIndex]; 

} 

Вы хранения UIImage «S в свой images массив уже. Поэтому нет необходимости использовать метод -imageNamed:, подобный примеру. Вместо этого вы должны вернуть изображение по указанному индексу из вашего массива images с помощью метода objectAtIndex:.

Надеюсь, это поможет.

Смежные вопросы