1、 整数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)
}
2、16进制设置颜色
convenience init(hexInt: Int) {
self.init(red:(hexInt >> 16) & 0xff, green:(hexInt >> 8) & 0xff, blue:hexInt & 0xff)
}
3、字符串设置颜色
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)