LoginSignup
13
12

More than 5 years have passed since last update.

Swift3以降のUIColorの使い方

Posted at

APIデザインガイドラインが適用されたSwift3になってから、記述量が少なくなっていい感じになりました。

そこで、アプリで使用する色の管理をデザインガイドラインを意識して書いてみました。

UIColor+AppDefined.swift
extension UIColor {

    convenience public init(rgba: Int64) {
        let r = CGFloat((rgba & 0xFF000000) >> 24) / 255.0
        let g = CGFloat((rgba & 0x00FF0000) >> 16) / 255.0
        let b = CGFloat((rgba & 0x0000FF00) >>  8) / 255.0
        let a = CGFloat( rgba & 0x000000FF)        / 255.0

        self.init(red: r, green: g, blue: b, alpha: a)
    }

    class var background: UIColor {
        return UIColor(rgba: 0x43BFFEFF)
    }

    class var title: UIColor {
        return UIColor(rgba: 0xFE99ACFF)
    }
}

また、Xcode8から使えるようになったColor Literalを使った場合はこうなります。
color_literal.png
※以下と同義です。

UIColor+AppDefined.swift
class var error: UIColor {
    return #colorLiteral(red: 0.9372549057, green: 0.3490196168, blue: 0.1921568662, alpha: 1)
}

このようなカテゴリを作っておくと、次のようにUIColorが扱えていい感じです。

ViewController.swift
view.backgroundColor = .background
titleLabel.textColor = .title
errorLabel.textColor = .error
13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12