单击按钮时,我一直尝试使用屏幕上的标签显示三种随机颜色。
-(IBAction)spinButton:(id)sender;
{
NSLog(@"Spin started.");
NSLog(@"Message");
NSLog(@"Message %@", nsString);
printf("%s\n", [@"Button Press" UTF8String]);
printf("%s %d %d %d\n", [@"Color: " UTF8String], wheelLeftColor, wheelMiddleColor, wheelRightColor);
wheelLeftColor.backgroundColor = [UIColor colorWithRed: 0.9 green: 0.9 blue: 0.6 alpha: 1.0];
wheelMiddleColor.backgroundColor = [UIColor colorWithRed: 0.9 green: 0.3 blue: 0.6 alpha: 1.0];
wheelRightColor.backgroundColor = [UIColor colorWithRed: 0.5 green: 0.6 blue: 0.3 alpha: 1.0];
[NSString stringWithFormat:@"%d", int_num]
time_t seed = time(0);
srandom((int)seed);
int num = random() % 3;
我不确定如何使这项工作。我有一个想法,但不知道如何实现它, 在action方法中,传递标签对象和颜色代码 这里的问题是如何使用int存储值1 - 3来表示每个轮子的颜色? 提前致谢
答案 0 :(得分:2)
尚未测试但应该可以使用。
- (UIColor *)randomColor
{
return [UIColor colorWithRed:[self randomColorComponentValue] green:[self randomColorComponentValue] blue:[self randomColorComponentValue] alpha:1];
}
- (CGFloat)randomColorComponentValue
{
CGFloat random = (CGFloat)arc4random()%255;
return random/255.0f;
}
- (IBAction)spinButton:(id)sender
{
wheelLeftColor.backgroundColor = [self randomColor];
wheelMiddleColor.backgroundColor = [self randomColor];
wheelRightColor.backgroundColor = [self randomColor];
}
答案 1 :(得分:0)
奥斯卡的答案也相同且更加详细。但是这里有一个简洁的方法。
-(UIColor *)randomCOlor{
return [UIColor colorWithRed:(arc4Random()%10)/10.0f green:(arc4Random()%10)/10.0f blue:(arc4Random()%10)/10.0f alpha:1];
}
所以
UIColor *someColor = [self randomColor];
<强>更新强> 如果要从预定义的值中选择随机颜色,可以使用belo代码:
让color1,color2,color3
为三(根据您的要求任意数字)UIColor对象。然后你可以选择一个像下面这样的随机值,并在延迟3s之后设置标签的颜色:
NSArray *colorArray = [NSArray arrayWithObjects:color1,color2,color3,nil];
NSInteger index = arc4random()%[colorArray count];
UIColor *selColor = [colorArray objecatAtIndex:index-1];
然后传递此颜色对象和标签对象,如问题中所述,以设置颜色。
您可以在延迟后使用performSelector:withObject:withDelay:
来调用方法。