我如何让Xcode随机化图片?

时间:2011-03-19 06:44:27

标签: iphone objective-c cocoa-touch image random

所以我一直在互联网上搜索方法,随机选择然后显示图像。到目前为止,我在我的.m viewcontroller中有这个:

#import "classgenViewController.h"

@implementation classgenViewController
@synthesize images, randomStrings;

- (void)viewDidLoad {
    [super viewDidLoad];
    self.randomStrings = [NSArray arrayWithObjects:@"Frag.png",
                          @"Semtex.png",
                          @"Tomahawk.png",
                          nil];
}

- (IBAction)showRandomString {
     UIImageView *images = [randomStrings objectAtIndex: (arc4random() % [randomStrings count])];
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    self.images = nil;
}

- (void)dealloc {
    [self.images release];
    [self.randomStrings release];
    [super dealloc];
}

@end

但*图像表示它是一个未使用的变量。我该怎么用呢它在我的.h中声明,我在它上面使用了(属性,非原子)方法,并合成了它。帮助

3 个答案:

答案 0 :(得分:2)

您只是分配images变量,而不是实际做任何事情。此外 - 您正在为其分配实际字符串时创建UIImageView类的实例。您是否已将UIImageView分配给您的UIViewController?如果是这样 - 只需为此分配一个UIImage

- (IBAction)showRandomString {
    NSString *randomImageFilename = [randomStrings objectAtIndex: (arc4random() % [randomStrings count])];
    UIImage *image = [UIImage imageNamed:randomImageFilename];
    uiImageViewOutlet.image = image;
}

答案 1 :(得分:0)

对于我作为初学者,我会使用一种根本不专业的方法,但它有效:)

首先,在界面构建器中添加所需的imageViews以及图像。 并将它们隐藏起来。

然后添加一个数组,其中的对象引用您拥有的图像,而不是使用

randomImage = [nameOfArray objectAtIndex:arc4random() % [nameOfArray count]];

然后添加一些if语句和一行以显示imageView,例如:

if ([randomImage isEqual:@"image1"]) {
image1.hidden = NO;
}

之前我尝试过这种方法,并且有效。

祝你好运

答案 2 :(得分:0)

首先,您将其声明为属性。然后通过在showRandomStrings中将其声明为局部变量来覆盖它。从未使用过该局部变量。要将值赋给.h文件中声明的实例变量,请删除它之前的“UIImageView *”。

此外,您似乎想要将NSString分配给UIImageView指针。那只会以泪水结束。

也许你想做这样的事情:

UIImage* newImage = [UIImage imageNamed:<your random string here>];
images.image = newImage;

“images”可能是你在.h中设置并在Interface Builder中配置的UIImageView *。