iOS SDK Interface Builder的RGB滑块产生与UIColor和RGB不同的颜色
在界面生成器中,我将UILabel的颜色更改为此屏幕截图,其中红色255,绿色159,蓝色0和不透明度为100%。 这给了一个橙色的颜色。
我以编程方式更改UILabel颜色比改变回到原来的颜色使用此…
timeLabel.textColor = [UIColor colorWithRed:255.0 green:159.0 blue:0.0 alpha:1.0];
它给这种颜色….
我以为应该是一样的,有谁知道我在做什么错了? 请帮忙,谢谢。
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” – 这为我工作