はじめに
iOSアプリ開発で色を扱うときにUIColor
を使いますが、RGB値からUIColor
を生成することは簡単だと思いますが、UIColor
からRGB値を取得するのに苦戦したので、その方法について書きます。
開発環境
Xcode 8.3.2
Swift 3.1
コード
CGColor
を経由する方法
UIColor
をCGColor
に変換することでRGBの値を取得することができます。
func convertToRGB(_ color: UIColor) -> (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) {
let components = color.cgColor.components! // UIColorをCGColorに変換し、RGBとAlphaがそれぞれCGFloatで配列として取得できる
return (red: components[0], green: components[1], blue: components[2], alpha: components[3])
}
使い方
let sampleColor = UIColor(red: 0.3, green: 0.2, blue: 0.5, alpha: 1)
convertToRGB(sampleColor).red // -> 0.3が取得できる