UIColorを16進数のRGBで指定する

iOS開発において、Webでよく利用されている#ff0000みたいな16進のRGBで指定する方法。

extension UIColor {
    convenience init(rgb: UInt) {
        self.init(
            red: CGFloat((rgb & 0xFF0000) >> 16) / 255.0,
            green: CGFloat((rgb & 0x00FF00) >> 8) / 255.0,
            blue: CGFloat(rgb & 0x0000FF) / 255.0,
            alpha: CGFloat(1.0)
        )
    }
}

Swiftだとextensionというのを利用することで既存クラスを簡単に拡張できるみたいです。
上のソースをプロジェクト内のSwiftファイルに書いておけば動きます。

使い方は

view.backgroundColor = UIColor(rgb: 0x209624)

みたいに、UIColorのコンストラクタの引数にrgbが追加されているので、
ここに16進数で色を指定してあげればOKです。
ちょっと加工すれば文字列から指定だとか、
アルファ(不透明度)を付けて指定だとかも出来ますね。
文字列よりHEXの引数のほうが若干ながらコンパイルでのエラー検出
([0-9a-f]以外の文字が入り込まない)が可能なのでこのままのほうが便利そうです。

ソース元

StackOverFlow: How to use UIColorFromRGB value in Swift

Tue, 11 Nov 2014 08:54:26 +0000   |   Category:iOS

関連記事

About Me

kimihiro-n

Androidアプリを中心にいろいろアプリ作ってます。
T N G

Products

放課後アプリ部
放課後アプリ部
個人アプリ開発者のための集客プラットフォーム作りました。 AndroidやiOSアプリのダウンロード数増加を無料で手伝います!

最速のJSON可視化・解析ツール
JSONを使った開発をスムーズにするためのツールです。 特定の値までのパスを簡単に取れます。
過去に作ったiOSアプリ
明日から本気出すタスク管理 for iOS
過去に作ったAndroidアプリ
明日から本気出すタスク管理 for Android Nagareboshi taplight
Others..

Search Articles