2014-02-24 90 views
0

我正在使用此代码为UIImageView生成随机图像。当我点击按钮时,它会显示另一张图片。我想问你如何创建四个图像浏览 - 点击按钮 - > apears四个不同的随机图像。显示四个随机图像

ViewController.h

@interface ViewController : UIViewController { 
    IBOutlet UIImageView *imageView; 
    // IBOutlet UIImageView *imageView2; 
} 
-(IBAction) randomImage; 

ViewController.m

- (IBAction) randomImage { 
NSArray *images = [[NSArray alloc] initWithObjects:@"image1.jpg", @"image2.jpg", @"image3.jpg", @"image4.jpg", nil]; 
int count = [images count] 
int index = arc4random() % count; 

imageView.image = [UIImage imageNamed:[images objectAtIndex:index]]; 
// imageView2.image = .... 
} 

我创建的故事板4个imageViews和我试图像// imageView2.image以上......但它不是正确的解决方案:-) 谢谢你的帮助

回答

0

而不是使用IBOutlet UIImageView *imageView;,使用IBOutletCollection(UIImageView) NSArray *imageViews;并连接一个你的图像视图的这一点。

然后,在你的代码:

- (IBAction) randomImage { 
    NSArray *images = [[NSArray alloc] initWithObjects:@"image1.jpg", @"image2.jpg", @"image3.jpg", @"image4.jpg", nil]; 
    NSInteger count = [images count]; 

    for (UIImageView *imageView in self.imageViews) { 
     NSInteger index = arc4random() % count; 

     imageView.image = [UIImage imageNamed:[images objectAtIndex:index]]; 
    } 
} 
+0

它显示一个随机,而是一个可以显示超过一次。 – jbouaziz

+0

对于'IBOutletCollection'为+1,对于重复图像为-1。 – zaph

3

代码列出4个随机图像:

NSMutableArray *images = [[NSMutableArray alloc] initWithArray: @[@"image1.jpg", @"image2.jpg", @"image3.jpg", @"image4.jpg"]]; 
int countImg = images.count; 

for (int i = 0; i < countImg; i++) { 
    NSInteger index = arc4random() % images.count; 
    NSLog(@"Image%d name = %@",i , [images objectAtIndex:index]); 
    [images removeObjectAtIndex:index]; 
} 
+0

而不是arc4random()%count使用arc4random_uniform(count)消除偏差。 – zaph

+0

谢谢@Zaph :) :) – larva

+0

我在做循环之前计算了图像的数量 – larva