想必很多小伙伴们都做过这样一件事,就是将项目中出现的主题色和频率较高的颜色值,通过宏定义的方式保存在代码中,只要在使用的地方调用宏就可以了,这种方式深受开发者的青睐,在屏幕前编辑这篇文章的某某也不例外。
可能你是这样的:
#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)
种种的种种,感觉恰到好处,但是感觉又欠缺点什么,最后iOS 11弥补了空缺。
iOS 11开始让开发者能像[UIImage imageNamed:@"logo.png"];
一样,使颜色能真正做到可视化配置[UIColor colorNamed:@"ThemeColor"];
添加颜色.png
编辑色系.png
设置颜色值.png