从ARGB值创建UIColor对象

时间:2012-02-24 16:51:56

标签: objective-c uicolor argb

我在数据库中有几行,其中一个字段是相关颜色的ARGB值。

我要读取这些表的所有行并将ARGB值十进制转换为UIColor。

我用谷歌搜索了这个,但我没有。

有没有办法解决这个问题?

感谢。

3 个答案:

答案 0 :(得分:13)

这是我提出的将ARGB整数转换为UI颜色的方法。我们在.NET系统中使用了几种颜色测试它

+(UIColor *)colorFromARGB:(int)argb {
    int blue = argb & 0xff;
    int green = argb >> 8 & 0xff;
    int red = argb >> 16 & 0xff;
    int alpha = argb >> 24 & 0xff;

    return [UIColor colorWithRed:red/255.f green:green/255.f blue:blue/255.f alpha:alpha/255.f];
}

答案 1 :(得分:2)

text.color = [UIColor colorWithRed:10.0/255.0 green:100.0/255.0 blue:55.0/255.0 alpha:1];

您只需将RGB值除以255即可正确设置。

答案 2 :(得分:1)

您可以定义宏并在整个代码中使用它

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