不少時候都使用 #XXXXXX 這種16進制的顏色值,在ios中須要轉換爲 RGB ios
/// 轉換 uicolor 顏色ui
func strConvertColor(colorStr:String , alpha:CGFloat = 1 ) -> UIColor {spa
//刪除字符串中的空格3d
var str:String = colorStr.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).uppercaseStringorm
if str.hasPrefix("0X"){索引
//若是是0x開頭的,那麼截取字符串,字符串從索引爲2的位置開始,一直到末尾字符串
let index = str.startIndex.advancedBy(2)string
str = str.substringFromIndex(index)it
}else if str.hasPrefix("#"){io
//若是是#開頭的,那麼截取字符串,字符串從索引爲1的位置開始,一直到末尾
let index = str.startIndex.advancedBy(1)
str = str.substringFromIndex(index)
}
if str.characters.count != 6 {
return UIColor.clearColor()
}
let rString = (str as NSString).substringToIndex(2)
let gString = ((str as NSString).substringFromIndex(2) as NSString).substringToIndex(2)
let bString = ((str as NSString).substringFromIndex(4) as NSString).substringToIndex(2)
var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0;
NSScanner(string: rString).scanHexInt(&r)
NSScanner(string: gString).scanHexInt(&g)
NSScanner(string: bString).scanHexInt(&b)
return UIColor(red: CGFloat(r) / 255.0, green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: alpha )
}