色の表現の仕方はいろいろある、有名な色だったら、直接色の名前打ったり、RGBで指定したり、HEXで指定したり。
Androidやってたり、cssとかでもHEXが割とメジャーだ(と思う
UIColorをHEX値で指定する拡張コード
|
1 2 3 4 5 6 7 8 9 10 11 12 |
extension UIColor { class func hex(_ text: String, alpha: CGFloat) -> UIColor { let digits = text.hasPrefix("#") ? String(text.dropFirst()) : text guard digits.count == 6, let color = UInt32(digits, radix: 16) else { return .white } let r = CGFloat((color >> 16) & 0xFF) / 255.0 let g = CGFloat((color >> 8) & 0xFF) / 255.0 let b = CGFloat(color & 0xFF) / 255.0 return UIColor(red: r, green: g, blue: b, alpha: alpha) } } |
こんな感じの呪文を追加してやればおk。
呼び出すとき
|
1 |
UIColor.hex("2c3e50", alpha: 1) |
こんな感じで呼び出せる(カンタンだね!
一度、拡張しておけば何回でもこれで呼び出せるので、色複数使うときは便利。
UIKitをインポートし、6桁のRGB値(先頭の#は省略可)を渡します。
