iOS中的随机颜色
我想让我的导航栏在每次加载时都有不同的颜色。我在viewDidApear中放置了以下代码:iOS中的随机颜色,ios,objective-c,colors,Ios,Objective C,Colors,我想让我的导航栏在每次加载时都有不同的颜色。我在viewDidApear中放置了以下代码: CGFloat hue = ( arc4random() % 256 / 256.0 ); // 0.0 to 1.0 CGFloat saturation = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from white CGFloat brightness = ( arc4random() % 128 / 256.0
CGFloat hue = ( arc4random() % 256 / 256.0 ); // 0.0 to 1.0
CGFloat saturation = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from white
CGFloat brightness = ( arc4random() % 128 / 256.0 ) + 0.5; // 0.5 to 1.0, away from black
UIColor *color = [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];
self.navigationBar.barTintColor = color;
问题是颜色范围太宽
我希望它只选择您在这张照片中看到的颜色:
是否可以使用此代码?+如果不是,我将如何创建一个类似的,从我定义的一些颜色中选择随机颜色的
谢谢您的帮助。这里有一个使用您的精确颜色的复制/粘贴解决方案
// Declare somewhere in your code
typedef struct _Color {
CGFloat red, green, blue;
} Color;
static Color _colors[12] = {
{237, 230, 4}, // Yellow just to the left of center
{158, 209, 16}, // Next color clockwise (green)
{80, 181, 23},
{23, 144, 103},
{71, 110, 175},
{159, 73, 172},
{204, 66, 162},
{255, 59, 167},
{255, 88, 0},
{255, 129, 0},
{254, 172, 0},
{255, 204, 0}
};
- (UIColor *)randomColor {
Color randomColor = _colors[arc4random_uniform(12)];
return [UIColor colorWithRed:(randomColor.red / 255.0f) green:(randomColor.green / 255.0f) blue:(randomColor.blue / 255.0f) alpha:1.0f];
}
注意:您应该使用arc4random\u uniform()
而不是arc4random()
,以避免模偏差(尽管在这种情况下并不那么重要)。这就做到了:
NSArray *hues = @[ @76, @98, @160, @217, @292, @318, @327, @21, @30, @41, @48, @58 ];
NSNumber *hue = hues[arc4random_uniform(hues.count)];
UIColor *color = [UIColor colorWithHue:[hue doubleValue] / 360.0 saturation:1.0 brightness:1.0 alpha:1.0];
谢谢@RmaddyUIColor
以下是此操作的代码:
-(UIColor *)randomColor
{
CGFloat hue = ( arc4random() % 256 / 256.0 );
CGFloat saturation = ( arc4random() % 128 / 256.0 ) + 0.5;
CGFloat brightness = ( arc4random() % 128 / 256.0 ) + 0.5;
UIColor *color = [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];
return color;
}
那些不是随机的颜色。这是12种特定的颜色。我的问题很糟糕,需要更好地定义。我想投票给你们答案,但被删除了。它起作用了,颜色不完全一样,但这对我来说是一个很好的开始。非常感谢。当我意识到这些颜色并不完全是我列出的颜色后,我删除了我的答案。无论如何,谢谢你!:)你知道我怎样才能找到正确的值吗?e、 我怎么知道照片中的绿色次级是什么?我会做其余的:)对不起,刚刚意识到这是一个多么愚蠢的问题色调值。非常感谢。你的解决办法奏效了!。非常感谢。我得到一个错误:(UIColor*)randomColor{行中有一个未清除的标识符randomColor。请确保
Color
struct和静态数组colors\u colrors[12]
在-(UIColor*)之前声明randomColor
方法。最好在文件顶部的某个位置。非常感谢您的帮助。我似乎无法使其正常工作。仍然存在相同的问题:/UnCleared identifier randomColor请确保其余代码是正确的(所有括号都在适当的位置,等等)。请尝试在代码中移动randomColor
方法,以查看是否出现其他问题。我编译并运行了发布的解决方案代码,没有任何问题。是的,这就是问题所在(缺少括号)。很抱歉,我对编码一无所知。非常感谢!获得了2个有效的解决方案:)