将十六进制的颜色字符串转为UIColor

简介: 扩展UIColor,将十六进制的颜色字符串转成UIColor对象。 extension UIColor { static func colorWithHexString(hex:String) -> UIColor { var cString:String = hex.

扩展UIColor,将十六进制的颜色字符串转成UIColor对象。

extension UIColor {
    
    static func colorWithHexString(hex:String) -> UIColor {
        var cString:String = hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).uppercaseString
        
        if cString.hasPrefix("#") {
            let index:String.CharacterView.Index = cString.startIndex.advancedBy(1)
             cString = cString.substringFromIndex(index)
        }
        
        if cString.characters.count != 6 {
            return UIColor.grayColor()
        }
        
        //按两位分割字符内容
        let rString = cString.substringToIndex(cString.startIndex.advancedBy(2))
        let gString = cString.substringFromIndex(cString.startIndex.advancedBy(2)).substringToIndex(cString.startIndex.advancedBy(2))
        let bString = cString.substringFromIndex(cString.startIndex.advancedBy(4)).substringToIndex(cString.startIndex.advancedBy(2))
        
        var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0
        NSScanner(string: rString).scanHexInt(&r)
        NSScanner(string: gString).scanHexInt(&g)
        NSScanner(string: bString).scanHexInt(&b)
        
        return UIColor(red: CGFloat(r) / 255.0 , green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: 1)
    }
}

 现在就可以调用了,

self.view.backgroundColor = UIColor.colorWithHexString("#ffff00")

 

目录
打赏
0
0
0
0
2
分享
相关文章
字符串输出颜色,字体颜色,背景色
字符串输出颜色,字体颜色,背景色
|
7月前
color - 让你的输出带点颜色
color - 让你的输出带点颜色
48 1
绘制汉字
【5月更文挑战第9天】绘制汉字。
39 3
|
10月前
|
字符间距
字符间距。
70 1
RGB颜色值与十六进制颜色码怎么相互转换?
RGB颜色值与十六进制颜色码怎么相互转换?
211 0
RGB颜色值与十六进制颜色码怎么相互转换?
RGB颜色对照表以及十六进制
RGB颜色对照表以及十六进制
443 0
RGB颜色对照表以及十六进制
关于16进制颜色值转换为UIColor的思考
前言 大家都知道iOS的UIColor提供的自定义初始化是通过RGB(A) 4个10进行制的参数,那么为什么用16进制呢?因为web和安卓端以常识性用16进制读取,所以为了方便设计师出图标注,很多时候都是16进制的效果图。
2143 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等