Swift开发技巧:UIColor

  • 整数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整数设置颜色
    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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 15,104评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,828评论 25 709
  • 很多人特别不理解。节约不是美德吗?为什么你说不敢花钱,就没有赚钱能力呢? 如果扯远一点讲,经济的繁荣,本来就是因为...
    创业咨询阅读 366评论 0 1
  • 1、情绪 每个人无论是做人还是做事,最重要的应该是“情绪的管理”。情绪真的奇怪,刚才也许还欢欣鼓舞了,一转眼就可以...
    清清草园阅读 290评论 2 2
  • 感冒了嗓子说不出话来了,屋外下着雨不停,心情很不好,在hn十年,bl20年,勤勤肯肯,一直在业务岗位,今天得知变化...
    Luuq阅读 186评论 0 0

友情链接更多精彩内容