user1641357
user1641357

Reputation: 3

Return a random image in iOS

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

Answers (2)

Daniel Amitay
Daniel Amitay

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

nielsbot
nielsbot

Reputation: 16022

UIImage * randomImage = [ UIImage imageNamed:[ NSString stringWithFormat:@"image%u.png", 1+arc4random_uniform(6) ] ] ;

Upvotes: 5

Related Questions