NearBy

ちょっぴり役に立つ情報を発信しているブログです。

RGBではなくカラーコードでUIColorを定義するextension

はじめに

RGBで独自のUIColorを定義するのはよくあることかと思います。

extension UIColor {
    
    class var appGreen: UIColor {
        return UIColor(red: 96.0 / 255.0, green: 216.0 / 255.0, blue: 124.0 / 255.0, alpha: 1.0)
    }
    
    class var appGray: UIColor {
        return UIColor(red: 172.0 / 255.0, green: 172.0 / 255.0, blue: 186.0 / 255.0, alpha: 1.0)
    }

    // 続く...
}

今回は、カラーコードで定義するextensionについて書きます。

extension

下記のような感じで定義できます。

extension UIColor {

    static let hogeColor = UIColor(hex: 0xEDEAEA)
    static let fugaColor = UIColor(hex: 0xD0CDD0)
    
    convenience init(red: Int, green: Int, blue: Int, a: CGFloat = 1.0) {
        self.init(
            red: CGFloat(red) / 255.0,
            green: CGFloat(green) / 255.0,
            blue: CGFloat(blue) / 255.0,
            alpha: a
        )
    }
    
    convenience init(hex: Int, a: CGFloat = 1.0) {
        self.init(
            red: (hex >> 16) & 0xFF,
            green: (hex >> 8) & 0xFF,
            blue: hex & 0xFF,
            a: a
        )
    }
}