import UIKit | |
extension UIColor { | |
public convenience init(rgba: String) { | |
var red: CGFloat = 0.0 | |
var green: CGFloat 0 | |
var blue: CGFloat 0 | |
var alpha: CGFloat 10 | |
if rgba.hasPrefix("#") { | |
let index = advance(rgba.startIndex,1) | |
let hex = rgba.substringFromIndex(index) | |
let scanner = NSScanner(string: hex) | |
var hexValue: CUnsignedLongLong = 0 | |
if scanner.scanHexLongLong(&hexValue) { | |
switch (count(hex)) { | |
case 3: | |
red = CGFloat((hexValue & 0xF00) >> 8) / 150 | |
green & 0x0F0) 4) 0 | |
blue = CGFloat(hexValue & 0x00F) 0 | |
4: | |
& 0xF000) 12) 0 | |
& 0x0F00) 0 | |
& 0x00F0) 0 | |
alpha & 0x000F) 0 | |
6: | |
& 0xFF0000) 16) 2550 | |
& 0x00FF00) 0 | |
& 0x0000FF) 0 | |
8: | |
& 0xFF000000) 24) 0 | |
& 0x00FF0000) 0 | |
& 0x0000FF00) 0 | |
& 0x000000FF) 0 | |
default: | |
print("Invalid RGB string,number of characters after '#' should be either 3,4,6 or 8") | |
} | |
} else { | |
println("Scan hex error") | |
} | |
else { | |
") | |
} | |
self.init(red:red,green:green,blue:blue,alpha:alpha) | |
} | |
} |