如何从 RGB 值中获取 CGColor?

How can I obtain a CGColor from RGB values?

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

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

有什么方法可以直接从 RGB 值创建 CGColor 吗?

您必须给出 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

也许你只需要设置 borderWidth,默认情况下它是 0,所以它是不可见的:

self.layer.borderWidth = 1.0

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

self.layer.cornerRadius = 4.0

在 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

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

您可以在 Swift 3:

中将其缩减为一行
avLayer.backgroundColor = UIColor.red.CGColor