Hex只是一种进制,十六进制。
iOS 提供的默认构造颜色(特指RGB)的方法其实是用RGBA的每个0~1的分数来构造的,
比如:[UIColor colorWithRed:0.4 green:0.4 blue:0.4 alpha:1];
表示Red 40% Green 40% Blue 40% Alpha 100%但实际上我们使用的是256色,所以这个颜色其实是Red 102, Green 102, Blue 102, Alpha 1,我们一般会有一个方法,可以用三个0~255十进制数来生成一个颜色:
[UIColor colorWithRed: 102/255.0 green: 102/255.0 blue: 102/255.0 alpha: 1];
但是如果设计师给的是16进制的颜色,比如#335b70工程师有两种办法,我们还是可以直接使用上面的方法,但填进去的时候如下所示:
[UIColor colorWithRed: 0x33/255.0 green: 0x5b/255.0 blue: 0x70/255.0 alpha: 1];
就是把每一位拆开,以16进制数填进去;另外,我们也可以用16进制数来构造颜色,如下所示:
+ (UIColor *)colorWithRGBHex:(UInt32)hex
{
int r = (hex >> 16) & 0xFF;
int g = (hex >> 8) & 0xFF;
int b = (hex) & 0xFF;
return [UIColor colorWithRed:r / 255.0f
green:g / 255.0f
blue:b / 255.0f
alpha:1.0f];
}
这样的话可以把十六进制数0x335b70填进去也能生成同样的一个颜色。
网友评论