有没有人知道如何使用颜色代码而不只是使用UIColor分配颜色

时间:2009-09-30 14:10:11

标签: objective-c iphone

就像标题所说我想使用颜色代码而不是做这样的事情

lblTemp.textColor = [UIColor colorWithRed: 0 green:0x99/255.0 blue:0 alpha:1.0];

例如我有以下颜色代码#30ae36如何使用此代码而不是上述代码。

4 个答案:

答案 0 :(得分:3)

我使用这个方便的宏:

#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

(我可能已经得到它from here,但你可以在很多地方找到它。无论如何,在这个链接上阅读关于宏与内联函数的讨论是值得的。)

如果要从字符串(例如从plist)初始化颜色,可以使用:

unsigned    rgbValues;
[[NSScanner scannerWithString:@"0xFF0000"] scanHexInt: &rgbValues];
UIColor* redColor = UIColorFromRGB(rgbValues);

答案 1 :(得分:2)

UIColor没有为它提供默认方法,但是,您可以为UIColor创建一个所谓的category,它取十六进制值(没有#)并将其转换为相应的RGB组件并使用那些组件要提供给UIColor的colorWithRed:绿色:蓝色:alpha:。

答案 2 :(得分:0)

这应该可以解决这个代码#30ae36

的问题
lblTemp4.textColor = [UIColor colorWithRed:0x*30*/255.0 green:0x*AE*/255.0 blue:0x*36*/255.0 alpha:1.0];

答案 3 :(得分:0)

在上一个答案中,来自 jovany 的* *星号应该省略。所以#30ae36变成了:

lblTemp4.textColor = [UIColor colorWithRed:0x30/255.0 green:0xAE/255.0 blue:0x36/255.0 alpha:1.0];

(可能很明显,但我一眼就看不到它)