开发过程中我们设计给过来的设计稿经常会是十六进制颜色码,而不是RGB值,这时候就需要转换成RGB一下才能使用了。
可以给UIColor增添一个类别,在类别中拓展转换的方法,这样比较方便调用
#import <UIKit/UIKit.h>
@interface UIColor (hexColor)
+(UIColor *)colorWithHex:(NSInteger)hex;
+(UIColor *)colorWithHex:(NSInteger)hex andAlpha:(float)alpha;
@end
#import "UIColor+hexColor.h"
@implementation UIColor (hexColor)
+(UIColor *)colorWithHex:(NSInteger)hex
{
return [UIColor colorWithHex:hex andAlpha:1.0];
}
+(UIColor *)colorWithHex:(NSInteger)hex andAlpha:(float)alpha
{
return [UIColor colorWithRed:((float)((hex & 0xFF0000) >> 16))/255 green:((float)((hex & 0xFF00) >> 8))/255 blue:((float)(hex & 0xFF))/255 alpha:alpha];
}
@end
然后我们可以把设计给过来的十六进制颜色码定义成宏,以后就可以直接使用,比较方便
例如值 ffffff
//例如值 ffffff
//宏定义
define HFffffff [UIColor colorWithHex:0xffffff andAlpha:1.0f]
这里需要注意的一点是设计给过来的ffffff,我们使用时需要在前面加上0x表示是16进制的值