Skip to content

Instantly share code, notes, and snippets.

@yutailang0119
Last active March 12, 2019 02:37
Show Gist options
  • Save yutailang0119/bef7cbe591ba6f76318219ba8bb69946 to your computer and use it in GitHub Desktop.
Save yutailang0119/bef7cbe591ba6f76318219ba8bb69946 to your computer and use it in GitHub Desktop.
UIColor extension for HexColor
extension UIColor {
convenience init(hex string: String, alpha: CGFloat) {
let hex = string.replacingOccurrences(of: "#", with: "")
let scanner = Scanner(string: hex)
var color: UInt32 = 0
if scanner.scanHexInt32(&color) {
let r = CGFloat((color & 0xFF0000) >> 16) / 255.0
let g = CGFloat((color & 0x00FF00) >> 8) / 255.0
let b = CGFloat(color & 0x0000FF) / 255.0
self.init(red: r, green: g, blue: b, alpha: alpha)
} else {
self.init(white: 1.0, alpha: 1)
}
}
var hex: String {
var r: CGFloat = 0
var g: CGFloat = 0
var b: CGFloat = 0
var a: CGFloat = 0
getRed(&r, green: &g, blue: &b, alpha: &a)
let rgb = Int(r * 255) << 16 | Int(g * 255) << 8 | Int(b * 255) << 0
return String(format: "#%06x", rgb).uppercased()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment