IOS: заполнить NSArray UIImageView

#objective-c #xcode #ios #uiimageview

#objective-c #xcode #iOS #uiimageview

Вопрос:

В моем проекте я создал 30 небольших UIImageView, внутри которых я поместил другой фон. Это моя группа UIImageView без фона

введите описание изображения здесь

и это группа UIImageView с другим фоном:

введите описание изображения здесь

Я помещаю эти группы UImageView внутри UITableViewCell и использую их для определения временной шкалы, но это не важно. Я объявил в .h эти UIImageView, но теперь я должен вставить theme в NSArray или NSMutableArray? Потому что в моем коде (в зависимости от случая) Я должен установить различный фон для каждого UIImageView. Как я могу упорядочить их в своем коде?

Ответ №1:

Вы не хотите помещать их все в массив. Что вы на самом деле хотите сделать, так это назначить «теги» для каждого представления. Затем вы можете использовать -[UIView viewWithTag:(int)]; для получения указателя на изображение, с которым вы хотите «пообщаться» в данный момент. Имейте в виду, что не следует использовать отрицательные числа или 0 при пометке ваших просмотров.

Ответ №2:

Хотя я бы предложил нарисовать ваш вид временной шкалы с использованием одного UIView, динамически создавать и сохранять представления в массиве просто:

 NSMutableArray *views = [NSMutableArray array];

NSUInteger viewCount = 30;
NSUInteger index;

for (index = 0; index < viewCount; index  ) {
   UIImageView *newView = [[[UIImageView alloc] initWithImage:anImage] autorelease];

   [newView setFrame:CGRectMake(index * width, 0.0, width, height);

   [[self someView] addSubview:newView];
   [views addObject:newView];
}
  

Не забудьте сохранить или скопировать views в какой-то момент.

Затем, чтобы изменить представление:

 [[views objectAtIndex:8] setImage:anotherImage];