码迷,mamicode.com
首页 > 编程语言 > 详细

swift - 16进制颜色扩展(1.支持# 2.支持不带# , 3支持带0X)

时间:2019-01-22 10:58:13      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:var   set   scan   支持   ext   from   扩展   func   range   

 

 

/**
 *  设置16进制颜色:
 *  可识别类型
 *  1:有#
 *  2:没有#
 *  3:含有0X
 */
extension UIColor{
    class func hexadecimalColor(hexadecimal:String)->UIColor{
        var cstr = hexadecimal.trimmingCharacters(in:  CharacterSet.whitespacesAndNewlines).uppercased() as NSString;
        if(cstr.length < 6){
            return UIColor.clear;
        }
        if(cstr.hasPrefix("0X")){
            cstr = cstr.substring(from: 2) as NSString
        }
        if(cstr.hasPrefix("#")){
            cstr = cstr.substring(from: 1) as NSString
        }
        if(cstr.length != 6){
            return UIColor.clear;
        }
        var range = NSRange.init()
        range.location = 0
        range.length = 2
        //r
        let rStr = cstr.substring(with: range);
        //g
        range.location = 2;
        let gStr = cstr.substring(with: range)
        //b
        range.location = 4;
        let bStr = cstr.substring(with: range)
        var r :UInt32 = 0x0;
        var g :UInt32 = 0x0;
        var b :UInt32 = 0x0;
        Scanner.init(string: rStr).scanHexInt32(&r);
        Scanner.init(string: gStr).scanHexInt32(&g);
        Scanner.init(string: bStr).scanHexInt32(&b);
        return UIColor.init(red: CGFloat(r)/255.0, green: CGFloat(g)/255.0, blue: CGFloat(b)/255.0, alpha: 1);
    }
}

  

swift - 16进制颜色扩展(1.支持# 2.支持不带# , 3支持带0X)

标签:var   set   scan   支持   ext   from   扩展   func   range   

原文地址:https://www.cnblogs.com/qingzZ/p/10302038.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!