iOS SDK Interface Builder的RGB滑块产生与UIColor和RGB不同的颜色

在界面生成器中,我将UILabel的颜色更改为此屏幕截图,其中红色255,绿色159,蓝色0和不透明度为100%。 这给了一个橙色的颜色。

IB RGB滑块在中心生产的颜色

我以编程方式更改UILabel颜色比改变回到原来的颜色使用此…

timeLabel.textColor = [UIColor colorWithRed:255.0 green:159.0 blue:0.0 alpha:1.0]; 

它给这种颜色…. UIColor颜色

我以为应该是一样的,有谁知道我在做什么错了? 请帮忙,谢谢。

 timeLabel.textColor = [UIColor colorWithRed:255/255.0f green:159.0/255.0f blue:0.0/255.0f alpha:1.0]; 

编辑:两年后,这个职位仍然得到一些业障和意见。 修复了一个更好的答案。

添加一个可以在0到255之间inputUIColor的函数的最明智和可重用的方法是创build一个自定义类别。 更容易阅读,更容易debugging,更容易让其他人做出贡献,并保持项目的清洁和结构,因为它不仅仅是一个视图viewcontrollers。 所以,添加下面的文件,并将它们导入你的m文件中,无论你需要它们

的UIColor + Extra.h

 @interface UIColor (Extra) + (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha + (UIColor *) randomColor; + (UIColor *) colorWithHex:(uint) hex; @end 

的UIColor + Extra.m

 #import "UIColor+Extra.h" @implementation UIColor (Extra) + (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha { return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/100.f]; } + (UIColor *) randomColor { CGFloat red = (CGFloat)random()/(CGFloat)RAND_MAX; CGFloat blue = (CGFloat)random()/(CGFloat)RAND_MAX; CGFloat green = (CGFloat)random()/(CGFloat)RAND_MAX; return [UIColor colorWithRed:red green:green blue:blue alpha:1.0]; } + (UIColor *) colorWithHex:(uint) hex { int red, green, blue, alpha; blue = hex & 0x000000FF; green = ((hex & 0x0000FF00) >> 8); red = ((hex & 0x00FF0000) >> 16); alpha = ((hex & 0xFF000000) >> 24); return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.f]; } @end 

在Xcode的蜡笔调色板中重现颜色的一种非常简单的方法是使用这个链接https://github.com/rob-brown/RBCategories/blob/master/UIColor+RBExtras.m

它允许像这样的蜡笔颜色…. UIColor *ThisColor = [UIColor blueberryCrayonColor];

尝试设置为“设备RGB” – 这为我工作

在这里输入图像说明