【Swift UI】ColorからRGBA値を取得する方法!getRedメソッド
この記事からわかること
- Swift UIのColor構造体からRGBA値を取得するには?
- UIColorのgetRedメソッドの使い方
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- Xcode:16.0
- iOS:18.0
- Swift:5.9
- macOS:Sonoma 14.6.1
Color構造体からRGBA値を取得する方法
Swift UIのColor構造体ではRGBA値を使用してインスタンス化することは可能ですが、インスタンス化されたColorから各RGBA値を取得することができません。
UIColor(red: 0.8, green: 0.2, blue: 0.5, alpha: 1)
Color(red: 0.8, green: 0.2, blue: 0.5, opacity: 1)
これを解消するためにはUIColor
のgetRed
メソッドを使用して以下のような拡張関数を定義しておくと便利です。
extension Color {
func toRGBA() -> (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) {
let uiColor = UIColor(self)
var red: CGFloat = 0
var green: CGFloat = 0
var blue: CGFloat = 0
var alpha: CGFloat = 0
uiColor.getRed(&red, green: &green, blue: &blue, alpha: &alpha)
return (red: red, green: green, blue: blue, alpha: alpha)
}
}
getRedメソッド
func getRed(
_ red: UnsafeMutablePointer<CGFloat>?,
green: UnsafeMutablePointer<CGFloat>?,
blue: UnsafeMutablePointer<CGFloat>?,
alpha: UnsafeMutablePointer<CGFloat>?
) -> Bool
getRed
は対象のUIColorのRGBA値を指定した変数に格納することができるメソッドです。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。