想必很多小伙伴們都做過這樣一件事畅蹂,就是將項(xiàng)目中出現(xiàn)的主題色和頻率較高的顏色值健无,通過宏定義的方式保存在代碼中,只要在使用的地方調(diào)用宏就可以了液斜,這種方式深受開發(fā)者的青睞累贤,在屏幕前編輯這篇文章的某某也不例外。
可能你是這樣的:
#define RGBA(R,G,B,A) [UIColor colorWithRed:R/255.0f green:G/255.0f blue:B/255.0f alpha:A]
#define RGB RGBA(R, G, B, 1.0f)
#define ThemeColor RGB(71, 153, 151)
或這樣的:
#define HexColor(hexValue, alpha) [UIColor colorWithRed:((CGFloat)((hexValue & 0xFF0000) >> 16)) / 255.0\
green:((CGFloat)((hexValue & 0xFF00) >> 8)) / 255.0\
blue:((CGFloat)(hexValue & 0xFF)) / 255.0\
alpha:(alpha)];
#define ThemeColor HexColor(0x479997, 1.0f)
更或許是這樣的:
//UIKIT_STATIC_INLINE
static inline UIColor *HexColor(uint32_t hexValue, CGFloat alpha){
return [UIColor colorWithRed:((CGFloat)((hexValue & 0xFF0000) >> 16)) / 255.0
green:((CGFloat)((hexValue & 0xFF00) >> 8)) / 255.0
blue:((CGFloat)(hexValue & 0xFF)) / 255.0
alpha:(alpha)];
}
#define ThemeColor HexColor(0x479997, 1.0f)
種種的種種少漆,感覺恰到好處臼膏,但是感覺又欠缺點(diǎn)什么,最后iOS 11彌補(bǔ)了空缺示损。
iOS 11開始讓開發(fā)者能像[UIImage imageNamed:@"logo.png"];
一樣渗磅,使顏色能真正做到可視化配置[UIColor colorNamed:@"ThemeColor"];