swift-3.0 将HexColor转变为UIColor的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift-3.0 将HexColor转变为UIColor的方法相关的知识,希望对你有一定的参考价值。

// MARK:- 把#ffffff颜色转为UIColor
extension UIColor {
    class func colorWithHexString(hex:String) ->UIColor {
        
        var cString = hex.trimmingCharacters(in:CharacterSet.whitespacesAndNewlines).uppercased()
        
        if (cString.hasPrefix("#")) {
            let index = cString.index(cString.startIndex, offsetBy:1)
            cString = cString.substring(from: index)
        }
        
        if (cString.characters.count != 6) {
            return UIColor.red
        }
        
        let rIndex = cString.index(cString.startIndex, offsetBy: 2)
        let rString = cString.substring(to: rIndex)
        let otherString = cString.substring(from: rIndex)
        let gIndex = otherString.index(otherString.startIndex, offsetBy: 2)
        let gString = otherString.substring(to: gIndex)
        let bIndex = cString.index(cString.endIndex, offsetBy: -2)
        let bString = cString.substring(from: bIndex)
        
        var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0;
        Scanner(string: rString).scanHexInt32(&r)
        Scanner(string: gString).scanHexInt32(&g)
        Scanner(string: bString).scanHexInt32(&b)
        
        return UIColor(red: CGFloat(r) / 255.0, green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: CGFloat(1))
    }
}

将以上方法直接复制粘贴至任意类中即可,调用方法如下:

 let tmpColor = UIColor.colorWithHexString(hex: "#FFFFFF") 

以上是关于swift-3.0 将HexColor转变为UIColor的方法的主要内容,如果未能解决你的问题,请参考以下文章

将 Swift 3.0 的选择器转换为 2.2

使用 Swift 3.0 将包含“字符串数组”的字符串解析为数组 [重复]

我必须将目标 c 代码转换为 swift 3.0,尝试在线转换时出错

获取“无法打开应用程序,因为您无权查看它。 “将项目代码从swift 2.2转换为swift 3.0之后

动画委托未转换为 Swift 3.0

解析加载图像 Swift 3.0