背景
UIColorはredとかblueとかが初めから用意されていたり、RGBで色を指定することができる。しかしWEB開発経験者としてはカラーコードで色指定できるととても楽だし便利。ということで16進数カラーコードでUIColorを初期化する方法をまとめる。
ソースコード(2019/6/17 修正 Swift5 対応版)
import UIKit
extension UIColor {
convenience init(hex: String, alpha: CGFloat = 1.0) {
let v = Int("000000" + hex, radix: 16) ?? 0
let r = CGFloat(v / Int(powf(256, 2)) % 256) / 255
let g = CGFloat(v / Int(powf(256, 1)) % 256) / 255
let b = CGFloat(v / Int(powf(256, 0)) % 256) / 255
self.init(red: r, green: g, blue: b, alpha: min(max(alpha, 0), 1))
}
}
使い方
上のソースコードをUIColorHex.swiftなど適当な名前をつけてプロジェクトファイルに突っ込めば準備OK
あとは
hogeView.backgroundColor = UIColor(hex: "FF00FF", alpha: 0.7)
hogeView.backgroundColor = UIColor(hex: "FF00FF")
こんな感じにするだけ。どこでも使える。
備考
UIColorをNSColorにするだけでmacOS向けアプリ開発にも利用可能。