swift - 16进制颜色扩展(1.支持# 2.支持不带# , 3支持带0X)
Posted qingzz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift - 16进制颜色扩展(1.支持# 2.支持不带# , 3支持带0X)相关的知识,希望对你有一定的参考价值。
/** * 设置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)的主要内容,如果未能解决你的问题,请参考以下文章
swift Swift数据扩展,支持将数据转换为十六进制呈现的字符串,并通过十六进制字符串构造数据