Reputation: 3
I have 6 .png images in my Xcode project (example: image1.png, image2.png., etc.). I want to create a method that returns a random image from this set of 6 and assigns it to my view's background. I already have a similar method that returns a random color:
+(UIColor *)randomColor
{
CGFloat red= (CGFloat)random()/(CGFloat)RAND_MAX;
CGFloat blue= (CGFloat)random()/(CGFloat)RAND_MAX;
CGFloat green= (CGFloat)random()/(CGFloat)RAND_MAX;
return [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
}
my implementation file calls this method like this:
UIColor *randomColor=[SoundDetail randomColor];
[self.view setBackgroundColor:randomColor];
How can I edit this method to return a random image from my list of 6 and assign it to my background view? I'm using Xcode 4.4.1 for a universal iOS 5 project.
Thanks!
Upvotes: 0
Views: 2130
Reputation: 6667
Assuming you have UIImages in an NSArray:
- (UIImage *)randomImage
{
NSArray *imagesArray = // array of images;
return [imagesArray objectAtIndex:(arc4random() % imagesArray.count];
}
Assuming you have UIImage names in an NSArray:
- (UIImage *)randomImage
{
NSArray *imagesArray = // array of image names;
NSString *imageName = [imagesArray objectAtIndex:(arc4random() % imagesArray.count];
return [UIImage imageNamed:imageName];
}
Upvotes: 0
Reputation: 16022
UIImage * randomImage = [ UIImage imageNamed:[ NSString stringWithFormat:@"image%u.png", 1+arc4random_uniform(6) ] ] ;
Upvotes: 5