将CGFloat,CGFloat,CGFloat转化为UIColor?

时间:2017-02-27 20:49:59

标签: swift

我有一系列看起来像这样的颜色......

var purpleShades: [(CGFloat, CGFloat, CGFloat)] = [(186.0/255.0, 85.0/255.0, 211.0/255.0), (147.0/255.0, 112.0/255.0, 219.0/255.0), (138.0/255.0, 43.0/255.0, 226.0/255.0), (148.0/255.0, 0.0/255.0, 211.0/255.0), (153.0/255.0, 50.0/255.0, 204.0/255.0), (139.0/255.0, 0.0/255.0, 139.0/255.0)]

而不是重复的代码想知道是否有人可以帮助将它转换为UIColor,所以我可以将它用于这段代码。

cell.tintColor = grayShades[Int(index)]

2 个答案:

答案 0 :(得分:3)

init的{​​{3}}可能会帮助您

它接受redgreenbluealpha作为参数。

答案 1 :(得分:1)

这是UIColor的一个很好的扩展:

extension UIColor {

    convenience init(hex: UInt, alpha: CGFloat) {

        var red, green, blue: UInt

        red = ((hex & 0xFF0000) >> 16)
        green = ((hex & 0x00FF00) >> 8)
        blue = hex & 0x0000FF

        self.init(red: CGFloat(red) / 255, green: CGFloat(green) / 255, blue: CGFloat(blue) / 255, alpha: alpha)
    }
}

你可以这样写:

let purple = UIColor(hex: 0x9932CC, alpha: 1)

如果您有很多颜色,UIColor上的另一个扩展程序会为您提供......

extension UIColor {
    static let darkOrchid = UIColor(hex: 0x 9932CC, alpha: 1)
    static let darkMagenta = UIColor(hex: 0x 8B008B, alpha: 1)
    static let indigo = UIColor(hex: 0x 4B0082, alpha: 1)
}

允许你说,例如......

cell.tintColor = .darkOrchid