所以我一直在互联网上搜索方法,随机选择然后显示图像。到目前为止,我在我的.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中声明,我在它上面使用了(属性,非原子)方法,并合成了它。帮助
答案 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 *。