Swift 实用代码:使用 hex 表示的颜色

源码(source code)

convenience init(hexCode: String) {
    var cString:String = hexCode.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
    if (cString.hasPrefix("#")) {
        cString.remove(at: cString.startIndex)
    }
    if ((cString.count) != 6) {
        self.init()
    } else {
        var rgbValue:UInt32 = 0
        Scanner(string: cString).scanHexInt32(&rgbValue)
        self.init(red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
                  green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
                  blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
                  alpha: 1)
    }
}

用法:

view.backgroundColor = UIColor(hex: "#007CD1")

Key Point:

  1. 使用Scanner将字符串转换成十六进制数;
  2. 使用 AND (&) 和 >> 右移两种位操作来分离颜色的三个部分。

你可能感兴趣的:(Swift 实用代码:使用 hex 表示的颜色)