UI:关于RGB与16进制颜色值的转换

时间:2024-09-01 00:03:26

IOS基本图形绘制 参考

取色对照表 参照

页面背景改为   #5CACEE   的颜色。有两个方法

方法一:

加两个宏

#define UIColorFromHexWithAlpha(hexValue,a) [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16))/255.0 green:((float)((hexValue & 0xFF00) >> 8))/255.0 blue:((float)(hexValue & 0xFF))/255.0 alpha:a]
#define UIColorFromHex(hexValue) UIColorFromHexWithAlpha(hexValue,1.0)

然后 = UIColorFromHex(0x5cacee);

方法二:

为UIColor 添加一个延展方法

+ (UIColor*) colorWithHex:(NSInteger)hexValue alpha:(CGFloat)alphaValue
{
return [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16))/255.0
green:((float)((hexValue & 0xFF00) >> 8))/255.0
blue:((float)(hexValue & 0xFF))/255.0 alpha:alphaValue];
}

然后  [UIColor colorWithHex:0x5CACEE alpha:1];

其他知识点:

(1)参考

-(id)initWithFrame:(CGRect)frame
-(instancetype)initWithFrame:(CGRect)frame
以他们开头的这两个初始化方法有什么区别?

比如你有一个类A,如果你重写一个init开头的方法,那么这个方法返回值也是A类的,但如果你写个其他名称的方法,就返回id了,instancetype可以保证依然返回一个A类的对象。省得你再强制类型转换。而且统一用instancetype显得整齐吧.

(2)

对于数组,字典,可变的不可以进行遍历,不可变的可以进行遍历,如要遍历,要把可变的数组、字典转化为不可变的然后再进行遍历。

(3)根据颜色视图得到三色值

如果想查看某一颜色的RGB值可以使用如下方法得到:

首先打开Launchpad

然后选择下面截图的左下角工具(数码测色计)将鼠标放到你选定的颜色视图上,数码测色计中就会显示出三色值

UI:关于RGB与16进制颜色值的转换