首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS CGColor与UIColor

iOS CGColor与UIColor
EN

Stack Overflow用户
提问于 2013-11-22 16:49:48
回答 4查看 7.7K关注 0票数 15

我使用了两种相同颜色的变体,一个亮的和一个暗的版本,来创建一个渐变。

代码:

代码语言:javascript
复制
CAGradientLayer *gradient = [CAGradientLayer layer];

UIColor *light = [baseColor lightVersion];

UIColor *dark = [baseColor darkVersion];

gradient.colors = [NSArray arrayWithObjects:(id)[light CGColor], (id)[dark CGColor], nil];

问题是,我注意到原始UIColor版本的CGColor版本是不同的。为什么会这样呢?UIColorCGColor之间有什么区别?为什么它们不同?

EN

回答 4

Stack Overflow用户

发布于 2013-11-22 17:09:35

UIColorNSObject继承并与UIKit Framework关联,而CGColorCoreGraphics关联,CGColorCFType派生。

因此,如果你使用UIKit元素,那么你可以使用UIColor,但如果你使用核心图形绘制或使用CALayer,你必须使用CGColor

根据UIColor的文档

UIKit中的许多方法要求您使用UIColor对象指定颜色数据,对于一般颜色需求,它应该是您指定颜色的主要方式。此对象使用的颜色空间已针对基于iOS的设备进行了优化,因此适用于大多数绘图需求。如果您更喜欢使用核心图形颜色和色彩空间,则可以这样做。

票数 25
EN

Stack Overflow用户

发布于 2013-11-22 17:06:09

在阅读了您的问题之后,我尝试了一个示例项目,在该项目中,我采用了一个背景色为RGB值(100,100,100)的标签。并将它的边框颜色设置为相同的RGB值,但它是CGColor,但我发现它们没有区别。请参阅附件中的图像。边框宽度为5像素。

票数 1
EN

Stack Overflow用户

发布于 2013-11-22 16:52:25

UIColor只是C object CGColor的Objective-C对象包装器。这应该是没有区别的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20140576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档