iOS CGColor与UIColor
我使用了两种相同颜色的变体,一种是浅色,另一种是深色,来创建渐变 代码:iOS CGColor与UIColor,ios,objective-c,uicolor,Ios,Objective C,Uicolor,我使用了两种相同颜色的变体,一种是浅色,另一种是深色,来创建渐变 代码: 问题是,我注意到原始UIColor版本的CGColor版本不同。为什么呢?UIColor和CGColor之间有什么区别?为什么它们不同?UIColor只是C对象CGColor的Objective-C对象包装器。应该没有区别。UICOLOR和CGCOLOR之间没有区别 在阅读了您的问题后,我尝试了一个示例项目,在该项目中,我获取了一个背景颜色为RGB值(100100)的标签。并将其边框颜色设置为相同的RGB值,但它是CGCo
问题是,我注意到原始
UIColor
版本的CGColor
版本不同。为什么呢?UIColor
和CGColor
之间有什么区别?为什么它们不同?UIColor
只是C对象CGColor
的Objective-C对象包装器。应该没有区别。UICOLOR和CGCOLOR之间没有区别 在阅读了您的问题后,我尝试了一个示例项目,在该项目中,我获取了一个背景颜色为RGB值(100100)的标签。并将其边框颜色设置为相同的RGB值,但它是CGColor,但我发现它们没有区别。请参阅所附图片。边框宽度为5像素。UIColor
继承自NSObject
并与UIKit框架关联,CGColor
与CoreGraphics
关联,CGColor
派生自CFType
因此,如果您使用的是UIKit元素,则可以使用UIColor
,但如果您使用的是使用核心图形的绘图或使用CALayer
则必须使用CGColor
根据
UIKit中的许多方法要求您使用
UIColor对象,对于一般的颜色需求,它应该是您的主要方式
指定颜色的方法。此对象使用的颜色空间为
为在基于iOS的设备上使用而优化,因此非常适合
用于大多数绘图需要如果您喜欢使用核心图形颜色和
但是,也可以使用颜色空间。
可能是伽马修正的问题,太荒谬了。
CAGradientLayer *gradient = [CAGradientLayer layer];
UIColor *light = [baseColor lightVersion];
UIColor *dark = [baseColor darkVersion];
gradient.colors = [NSArray arrayWithObjects:(id)[light CGColor], (id)[dark CGColor], nil];