Swift3 이상 UIColor 사용 방법

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

좋은 웹페이지 즐겨찾기