2015-09-13 6 views
1

Мне нужно создать определенное количество UIImageViews, основанное на количестве объектов внутри NSMutableArray. Например, если в этом NSMutableArray имеется 5 UIImage, как мне создать 5 UIImageView с этими изображениями?UIImageView от NSMutableArray

Благодаря

ответ

1

Используйте count свойство NSArray:

UIImage *image1 = [UIImage imageNamed:@"img1.png"]; 
UIImage *image2 = [UIImage imageNamed:@"img2.png"]; 
UIImage *image3 = [UIImage imageNamed:@"img3.png"]; 
UIImage *image4 = [UIImage imageNamed:@"img4.png"]; 
UIImage *image5 = [UIImage imageNamed:@"img5.png"]; 
NSArray *imageArray = @[image1, image2, image3, image4, image5]; 

NSInteger imageCount = 0; 
NSInteger imageViewYM = 20; // Ensure this is bigger than image height 

for (UIImage *image in imageArray) { 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, imageViewYM * imageCount, image.size.width, image.size.height)]; 
    imageView.image = image; 

    [self.view addSubview:imageView]; 
    imageCount++; 
} 
+0

Спасибо, у меня есть настройте его сейчас. Знаете ли вы, есть ли способ переместить их для каждого изображения вместо перекрытия? Еще раз спасибо – Dyllan

+0

В NSInteger содержится кол-во UIImageView, которое используется на основе контекста, например, для установки рамки супервизора и т. Д. Однако цикл for достаточно хорош, чтобы вы могли получить доступ к UIImages для создания ваших изображений. – Abhinav

+0

@ Dyllan - Извините, но я не совсем понял ваш вопрос. Не могли бы вы перефразировать. – Abhinav

0

запустить в то время как петля для всех изображений и создать новый UIImageView для каждого из них:

NSArray *imageArray = @[image1, image2, image3]; 
int i = 0; 
while(i < imageArray.count) { 
    UIImageView * imageView = [[UIImageView alloc] init]; 
    imageView.image = [imageArray objectAtIndex:i]; 
    imageView.frame = CGRectMake(0, 0, 50, 50); 
    imageView.tag = i; 
    [self.view addSubview:imageView]; 
    i++; 
} 
+0

Спасибо за это :) – Dyllan

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