- UIColor 继承自 NSObject,是UIKit中存储颜色信息的一个重要的类,一个UIColor对象包含了颜色和透明度的值,使用UIColor对象的最常见方法是将其提供给UIKit中的其他对象。例如,UIView该类(及其子类)包括背景和淡色,以影响它们在屏幕上的绘制方式。例如设置背景颜色:
self.view.backgroundColor = [UIColor blueColor];
-
CGColor主要用于CoreGaphics框架之中,CGColor其实是个结构体,而我们通常在使用的CGColor的时候使用的是它的引用类型CGColorRef。CGColor主要由CGColorSapce和Color Components两个部分组成,同样的颜色组成,如果颜色空间不同的话,解析出来的结果可能会有所不同。关于颜色空间的解释可参考百度百科:颜色空间
-
CIColor主要是用于和Core Image框架中其他类,比如CIFilter,CIContext以及CIImage。今天我们主要关心的颜色值部分,CIColor中颜色值的范围是0.0-1.0之间,0.0代表该颜色分量为最小值,1.0代表改颜色分量为最大值。其中alpha值的范围也是0.0到1.0之间,0.0代表全透明,1.0代表完全不透明,同时CIColor的颜色分量通常都是没有乘以alpha值。
我们可以使用initWithCGColor:函数,通过CGColor创建一个CIColor。其中传入的CGColorRef对象可以适用于任何颜色空间,但是Core Image框架会在传入filter kernel之前把所有的颜色空间转换到core image工作颜色空间。core image工作颜色空间使用三个颜色分量加上一个alpha分量组成(其实就是kCGColorSpaceDeviceRGB)
参考文献:UIColor,CGColor,CIColor三者的区别和联系 及苹果官方