项目开发中设计给出的色值通常是以#号开头的十六进制色值(eg:#efa2b1)然而iOS 中使用的确是RGB三原色,所以直接利用一个宏定义将十六进制色值转换为三原色写代码时就很方便了。
#define ColorFromHexColor(hexValue) [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16)) / 255.0 green:((float)((hexValue & 0x00FF00) >> 8)) / 255.0 blue:((float)(hexValue & 0x0000FF)) / 255.0 alpha:1.0f]
ps :hexValue 传值为十六进制色值(eg:0xefa2b1)0x开头表示该值为十六进制的数字
eg: #efa2b1 ef 代表红色的16进制RGB色值
a2 代表绿色的16进制的rgb色值
b1 代表蓝色的16进制的rgb色值
三原色计算方式:1位与运算(&位与运算符)2右移运算(>>右移运算符)得到rgb色值
以红色的计算方式为例
eg : RED 0xefa2b1&0xFF0000 (进行位与运算) 0xef0000—(进行右移运算,又移的位数是以二进制位数来计算的一位十六进制的数值对应4位二进制的数值)0xef0000 右移16位后得到16进制表示的红色的色值为 0xef
网友评论