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)