Skip to content

Instantly share code, notes, and snippets.

@waynedahlberg
Created April 15, 2019 01:52
Show Gist options
  • Save waynedahlberg/c6f1522f6745b90a7041746378229d2f to your computer and use it in GitHub Desktop.
Save waynedahlberg/c6f1522f6745b90a7041746378229d2f to your computer and use it in GitHub Desktop.
UIColor Utilities
import UIKit
extension UIColor {
// Returns RGB(A) UIColor value from hexidecimal String representation
// Example: let blueColor = UIColor(hexString: "006699")
convenience init(hexString: String, alpha: CGFloat = 1.0) {
let hexString = hexString.trimmingCharacters(in: .whitespacesAndNewlines)
let scanner = Scanner(string: hexString)
if hexString.hasPrefix("#") {
scanner.scanLocation = 1
}
var color: UInt32 = 0
scanner.scanHexInt32(&color)
let mask = 0x000000FF
let r = Int(color >> 16) & mask
let g = Int(color >> 8) & mask
let b = Int(color) & mask
let red = CGFloat(r) / 255.0
let green = CGFloat(g) / 255.0
let blue = CGFloat(b) / 255.0
self.init(red: red, green: green, blue: blue, alpha: alpha)
}
var hexString: 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 = (Int)(r*255)<<16 | (Int)(g*255)<<8 | (Int)(b*255)<<0
return String(format: "#%06x", rgb)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment