Swiftで、自前のカラーライブラリみたいなやつを作りたい時のやつ。
UIColorを拡張するExtension
// HEXからUIColorに変換する拡張
extension UIColor {
convenience init?(hex: String, alpha: CGFloat = 1.0) {
let validatedHexColorCode = hex.replacingOccurrences(of: "#", with: "")
let scanner = Scanner(string: validatedHexColorCode)
var colorCode: UInt32 = 0
guard scanner.scanHexInt32(&colorCode) else {
print("ERROR: 色変換に失敗しました。")
return nil
}
let R = CGFloat((colorCode & 0xFF0000) >> 16) / 255.0
let G = CGFloat((colorCode & 0x00FF00) >> 8) / 255.0
let B = CGFloat(colorCode & 0x0000FF) / 255.0
self.init(displayP3Red: R, green: G, blue: B, alpha: alpha)
}
}
Enumを作成して簡単に使えるようにする
enum Color: String {
case red = "C85D5D"
case orange = "DD7C3A"
case yellow = "D8C05B"
case green = "66A040"
case emerald = "5BAA84"
case lightblue = "63BFC1"
case blue = "4A78A5"
case purple = "835C91"
case pink = "D182B9"
case brown = "8E6C4D"
case gray = "828282"
case black = "3F3F3F"
var UIColor: UIKit.UIColor {
return UIKit.UIColor(hex: self.rawValue)!
}
var cgColor: UIKit.CGColor {
return self.UIColor.cgColor
}
}
使い方
let blue = Color.blue.UIColor
let blueCg = Color.blue.cgColor
参考文献
こちらをSwift4に書き直しました。