Swift開發(fā)技巧:UIColor

  • 整數(shù)RGB設置顏色
convenience init(red: Int, green: Int, blue: Int , alp: CGFloat = 1.0 ) {  
    assert(red >= 0 && red <= 255, "Invalid red component")       
    assert(green >= 0 && green <= 255, "Invalid green component")       
    assert(blue >= 0 && blue <= 255, "Invalid blue component")               
    self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: alp)    
}

  • 16進制設置顏色
 convenience init(hexInt: Int) {        
    self.init(red:(hexInt >> 16) & 0xff, green:(hexInt >> 8) & 0xff, blue:hexInt & 0xff)    
}       
  • 字符串設置顏色
convenience init(hexString: String) { 
    var hexStr = hexString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet() as NSCharacterSet).uppercaseString               
    if (hexStr.hasPrefix("#")) {            
        hexStr = hexStr.substringFromIndex(hexStr.startIndex.advancedBy(1))        
    }           
    var hexInt: UInt32 = 0        
    NSScanner(string: hexStr).scanHexInt(&hexInt)               
    self.init(red: Int((hexInt >> 16) & 0xff), green: Int((hexInt >> 8) & 0xff), blue: Int(hexInt & 0xff))    }
}

  • 整個封裝
extension UIColor {       
    // RGB整數(shù)設置顏色
    convenience init(red: Int, green: Int, blue: Int , alp: CGFloat = 1.0 ) {  
        assert(red >= 0 && red <= 255, "Invalid red component")       
        assert(green >= 0 && green <= 255, "Invalid green component")       
        assert(blue >= 0 && blue <= 255, "Invalid blue component")               
        self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: alp)    
        
    }
    // 16進制設置顏色
    convenience init(hexInt: Int) {        
       self.init(red:(hexInt >> 16) & 0xff, green:(hexInt >> 8) & 0xff, blue:hexInt & 0xff)    
    }       
       
       // 字符串設置顏色
    convenience init(hexString: String) { 
        var hexStr = hexString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet() as NSCharacterSet).uppercaseString               
        if (hexStr.hasPrefix("#")) {            
            hexStr = hexStr.substringFromIndex(hexStr.startIndex.advancedBy(1))        
        }           
        var hexInt: UInt32 = 0        
        NSScanner(string: hexStr).scanHexInt(&hexInt)               
        self.init(red: Int((hexInt >> 16) & 0xff), green: Int((hexInt >> 8) & 0xff), blue: Int(hexInt & 0xff))    
    }
}
  • 應用
UIColor(red: 253, green: 77, blue: 79)
UIColor(red: 253, green: 77, blue: 79, alp: 0.9)

UIColor(hexString: "#A94442")
UIColor(hexString: "#DCA7A7")

UIColor(hexInt: 0xdcdcdc)
UIColor(hexInt: 0xdcdaaa)
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,383評論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,063評論 25 709
  • 很多人特別不理解。節(jié)約不是美德嗎?為什么你說不敢花錢,就沒有賺錢能力呢? 如果扯遠一點講,經(jīng)濟的繁榮,本來就是因為...
    創(chuàng)業(yè)咨詢閱讀 370評論 0 1
  • 1、情緒 每個人無論是做人還是做事,最重要的應該是“情緒的管理”。情緒真的奇怪,剛才也許還歡欣鼓舞了,一轉眼就可以...
    清清草園閱讀 290評論 2 2
  • 感冒了嗓子說不出話來了,屋外下著雨不停,心情很不好,在hn十年,bl20年,勤勤肯肯,一直在業(yè)務崗位,今天得知變化...
    Luuq閱讀 186評論 0 0

友情鏈接更多精彩內(nèi)容