如何从RGB值中获取cgcolor?

时间:2015-04-06 06:40:48

标签: ios swift rgb uicolor cgcolor

我正在尝试使用RGB创建自定义CGColor swift,以用作UIButton的边框颜色。我尝试过代码,但颜色不可见:

var red = UIColor(red: 100.0, green: 130.0, blue: 230.0, alpha: 1.0)
self.layer.borderColor = red.CGColor

有没有办法直接从RGB值创建CGColor

5 个答案:

答案 0 :(得分:64)

您必须提供0到1.0之间的值。因此,将RGB值除以255。

将您的代码更改为

var red = UIColor(red: 100.0/255.0, green: 130.0/255.0, blue: 230.0/255.0, alpha: 1.0)
self.layer.borderColor = red.CGColor

答案 1 :(得分:6)

在Mac OS X上有CGColorCreateGenericRGB(),但它在iOS上并不存在。但是,您可以将CGColorCreate与适当的参数一起使用。

self.layer.borderColor = CGColorCreate(CGColorSpaceCreateDeviceRGB(), [1.0, 0.5, 0.5, 1.0])

数组中的值按照外观顺序排列:红色,绿色,蓝色和alpha。就像UIColor:)

一样

https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGColor/#//apple_ref/c/func/CGColorCreate

答案 2 :(得分:5)

你可以在Swift 3中找到一行:

avLayer.backgroundColor = UIColor.red.CGColor

答案 3 :(得分:1)

UImage *newImage = [self imageWithColor:[UIColor colorWithRed:200/255. green:228/255. blue:194/255. alpha:0.99]];

答案 4 :(得分:0)

也许您只需要设置borderWidth,默认情况下它是0,因此它不可见:

self.layer.borderWidth = 1.0

万一你可以设置cornerRadius如果你需要它四舍五入...可能有用; - )

self.layer.cornerRadius = 4.0