Swift UIColor扩展
extension UIColor {
public convenience init(_ hex: Int, alpha: CGFloat = 1) {
let intr = (hex >> 16) & 0xFF
let intg = (hex >> 8) & 0xFF
let intb = hex & 0xFF
self.init(red: CGFloat(intr) / 255.0, green: CGFloat(intg) / 255.0, blue: CGFloat(intb) / 255.0, alpha: alpha)
}
public convenience init(_ hexStr: String, alpha: CGFloat = 1) {
guard let colorStrRange = hexStr.range(of: "^#{0,1}[0-9a-zA-F]{6}$", options: .regularExpression) else {
self.init()
return
}
var colorStr = hexStr[colorStrRange]
if colorStr.hasPrefix("#") {
colorStr = colorStr[1...]
}
let rStr = String(colorStr[0 ..< 2]).uppercased()
let gStr = String(colorStr[2 ..< 4]).uppercased()
let bStr = String(colorStr[4 ..< 6]).uppercased()
let r = UInt8(rStr, radix: 16) ?? 0
let g = UInt8(gStr, radix: 16) ?? 0
let b = UInt8(bStr, radix: 16) ?? 0
self.init(red: CGFloat(r) / 255.0, green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: alpha)
}
public convenience init(R: UInt8, G: UInt8, B: UInt8, alpha: CGFloat = 1) {
self.init(red: CGFloat(R) / 255.0, green: CGFloat(G) / 255.0, blue: CGFloat(B) / 255.0, alpha: alpha)
}
public static var random: UIColor {
let colorStr = String.random(length: 6, in: "0123456789ABCDEF")
return UIColor("#\(colorStr)")
}
}