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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM