我已经创建了代码,因此:当视图加载时,会显示一个随机图像。 我写了一些代码,但它始终以相同的图像(和viewbgcolor)开始..
我的代码:
-(void)viewDidLoad
{
index = [NSNumber numberWithInt:(([index intValue] + 1) % 6)];
switch ([index intValue]) {
case 0:
moodImage.image = [UIImage imageNamed:@"angry.png"];
self.view.backgroundColor = [UIColor redColor];
break;
case 1:
moodImage.image = [UIImage imageNamed:@"Disappointed.png"];
self.view.backgroundColor = [UIColor brownColor];
break;
case 2:
moodImage.image = [UIImage imageNamed:@"glad.png"];
self.view.backgroundColor = [UIColor orangeColor];
break;
case 3:
moodImage.image = [UIImage imageNamed:@"happy.png"];
self.view.backgroundColor = [UIColor yellowColor];
break;
case 4:
moodImage.image = [UIImage imageNamed:@"sad.png"];
self.view.backgroundColor = [UIColor grayColor];
break;
case 5:
moodImage.image = [UIImage imageNamed:@"surprised.png"];
self.view.backgroundColor = [UIColor greenColor];
break;
}
}
这真令人沮丧.. 它适用于IBAction,但不适用于viewdidload ... 是否有人使用替代代码块来实现此功能?
答案 0 :(得分:2)
index = [NSNumber numberWithInt:(([index intValue] + 1) % 6)];
此代码行中没有随机值。
试试这个:
index = [NSNumber numberWithInt:arc4random_uniform(5)];
有关objective-c
中随机数的信息,请参阅“Generating Random Numbers in Objective-C”答案 1 :(得分:0)
而不是
[NSNumber numberWithInt:(([index intValue] + 1) % 6)]
使用
arc4random(5)
您需要为每个viewDidCall创建随机值,并且从您的代码中它不会发生。
的文档