項目開發中設計給出的色值通常是以#號開頭的十六進制色值(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