Swift UIColor 16进制编码转换RGB格式
Swift UIColor 16进制编码转换RGB :
由于UI出图的时候,通常给的是16进制的编码颜色,我们在开发的时候需要将它转换为RGB格式,现在给出两种代码片段,喜欢哪种就用哪种...
一、对UIColor进行扩展
1 extension UIColor { 2 3 /** 4 Make color with hex string 5 - parameter hex: 16进制字符串 6 - returns: RGB 7 */ 8 static func colorWithHexString (hex: String) -> UIColor { 9 10 var cString: String = hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).uppercaseString 11 12 if (cString.hasPrefix("#")) { 13 cString = (cString as NSString).substringFromIndex(1) 14 } 15 16 if (cString.characters.count != 6) { 17 return UIColor.grayColor() 18 } 19 20 let rString = (cString as NSString).substringToIndex(2) 21 let gString = ((cString as NSString).substringFromIndex(2) as NSString).substringToIndex(2) 22 let bString = ((cString as NSString).substringFromIndex(4) as NSString).substringToIndex(2) 23 24 var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0; 25 NSScanner(string: rString).scanHexInt(&r) 26 NSScanner(string: gString).scanHexInt(&g) 27 NSScanner(string: bString).scanHexInt(&b) 28 29 return UIColor(red: CGFloat(r) / 255.0, green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: CGFloat(1)) 30 } 31 }
二、简便方法,直接调用代码片段
个人推荐使用这个方法,创建一个宏定义文件
1 func kRGBColorFromHex(rgbValue: Int) -> (UIColor) { 2 3 return UIColor(red: ((CGFloat)((rgbValue & 0xFF0000) >> 16)) / 255.0, 4 green: ((CGFloat)((rgbValue & 0xFF00) >> 8)) / 255.0, 5 blue: ((CGFloat)(rgbValue & 0xFF)) / 255.0, 6 alpha: 1.0) 7 } 8 9 可以这样调用 10 kRGBColorFromHex(0x1D1D26)