2014-10-04 124 views
0

一个项目我已经改变我的背景颜色,三种颜色之一以下方法:随机选择的对象 -

- (void) setBackgroundOfView { 
    // change the background color 
    UIColor *feijoa = [UIColor colorWithRed:0.565 green:0.82 blue:0.478 alpha:1]; /*#90d17a*/ 
    UIColor *turquoise = [UIColor colorWithRed:0.2 green:0.78 blue:0.773 alpha:1]; /*#33c7c5*/ 
    UIColor *lavendar = [UIColor colorWithRed:0.765 green:0.541 blue:0.898 alpha:1] /*#c38ae5*/ 
    UIColor *randomColor = random.choose(feijoa, turquoise, lavendar) // in pseudocode 
} 

是什么正确的方式做random.choose(feijoa, turquoise, lavendar)

回答

3

您可以将颜色存储到NSArray,并选择其中一个随机:

#include <stdlib.h> 

- (void) setBackgroundOfView { 
    // change the background color 
    UIColor *feijoa = [UIColor colorWithRed:0.565 green:0.82 blue:0.478 alpha:1]; /*#90d17a*/ 
    UIColor *turquoise = [UIColor colorWithRed:0.2 green:0.78 blue:0.773 alpha:1]; /*#33c7c5*/ 
    UIColor *lavendar = [UIColor colorWithRed:0.765 green:0.541 blue:0.898 alpha:1] /*#c38ae5*/ 

    NSArray *colors = @[feijoa, turquoise, lavendar]; 
    int index = arc4random_uniform(colors.count); 
    UIColor *randomColor = colors[index]; 
} 
0

我会成立三个数组。红,绿,蓝各一个。然后使用一个随机数发生器来选择一个索引。然后,你插入arrayRed [指数),arrayGreen [索引],数组[蓝] arrayBlue [索引]

UIColor *feijoa = [UIColor colorWithRed:arrayRed[index) green:arrayGreen[Index] blue:arrayBlue[Index] alpha:1]; 

UE中的arc4Random()函数生成索引。这种方法现在允许您轻松地向阵列或其他颜色添加更多颜色。

+0

是'index','Index'和'蓝'同样的指数?代码中也有语法错误。 – 2014-10-04 19:43:14

+0

已更新为清晰 – 2014-10-04 19:45:47

1

你有一组结果:

UIColor *feijoa = [UIColor colorWithRed:0.565 green:0.82 blue:0.478 alpha:1]; /*#90d17a*/ 
    UIColor *turquoise = [UIColor colorWithRed:0.2 green:0.78 blue:0.773 alpha:1]; /*#33c7c5*/ 
    UIColor *lavendar = [UIColor colorWithRed:0.765 green:0.541 blue:0.898 alpha:1] /*#c38ae5*/ 

而且你需要选择一个随机。把结果到一个数组:

NSArray *choices = @[feijoa, turquoise, lavender]; 

然后选择一个随机指数:

int index = arc4random() % ([choices count]); 

所以,选择[指数]是你的项目

+1

这与Gustavo的方法非常相似,但它应该是'arc4random()%[options count]',否则最后一个项目永远不会被选中。请注意,根据https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/arc4random.3.html,建议'arc4random_uniform()'超过arc4random()%... '(但在这种情况下可能无关紧要)。 – 2014-10-04 19:45:51