如何从RGB值中获取cgcolor?

ali*_*ego 27 rgb cgcolor uicolor ios swift

我试图创建一个自定义RGB CGColor使用swift的边框颜色的使用UIButton.我尝试过代码,但颜色不可见:

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

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

Shr*_*uti 69

您必须提供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
Run Code Online (Sandbox Code Playgroud)


Rom*_*ain 6

在Mac OS X上有CGColorCreateGenericRGB(),但它在iOS上不存在.但是,您可以使用CGColorCreate适当的参数.

self.layer.borderColor = CGColorCreate(CGColorSpaceCreateDeviceRGB(), [1.0, 0.5, 0.5, 1.0])
Run Code Online (Sandbox Code Playgroud)

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

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


小智 6

您可以在Swift 3中将其缩小到一行:

avLayer.backgroundColor = UIColor.red.CGColor
Run Code Online (Sandbox Code Playgroud)