您的位置:首页 > 移动开发 > Swift

UIColor扩展—Swift

2016-01-05 13:44 405 查看
extension UIColor {

convenience init(bd_hexColor hexValue: String) {

var red: CGFloat = 0.0

var green: CGFloat = 0.0

var blue: CGFloat = 0.0

var alpha: CGFloat = 1.0

var hexColorString = hexValue;

if !hexColorString.hasPrefix("#"){
hexColorString = "#"+hexValue;
}

let index   = hexColorString.startIndex.advancedBy(1)
let hex     = hexColorString.substringFromIndex(index)
let scanner = NSScanner(string: hex)
var hexValue: CUnsignedLongLong = 0
if scanner.scanHexLongLong(&hexValue) {
switch (hex.characters.count) {
case 3:
red   = CGFloat((hexValue & 0xF00) >> 8)       / 15.0
green = CGFloat((hexValue & 0x0F0) >> 4)       / 15.0
blue  = CGFloat(hexValue & 0x00F)              / 15.0
case 4:
red   = CGFloat((hexValue & 0xF000) >> 12)     / 15.0
green = CGFloat((hexValue & 0x0F00) >> 8)      / 15.0
blue  = CGFloat((hexValue & 0x00F0) >> 4)      / 15.0
alpha = CGFloat(hexValue & 0x000F)             / 15.0
case 6:
red   = CGFloat((hexValue & 0xFF0000) >> 16)   / 255.0
green = CGFloat((hexValue & 0x00FF00) >> 8)    / 255.0
blue  = CGFloat(hexValue & 0x0000FF)           / 255.0
case 8:
red   = CGFloat((hexValue & 0xFF000000) >> 24) / 255.0
green = CGFloat((hexValue & 0x00FF0000) >> 16) / 255.0
blue  = CGFloat((hexValue & 0x0000FF00) >> 8)  / 255.0
alpha = CGFloat(hexValue & 0x000000FF)         / 255.0
default:
BMLog("Invalid RGB string, number of characters after '#' should be either 3, 4, 6 or 8")
}
} else {
BMLog("Scan hex error")
}
self.init(red:red, green:green, blue:blue, alpha:alpha)
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: