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を使った場合はこうなります。
※以下と同義です。
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