どうも、ちょげ(@chogetarou)です。
Colorの色を16進数で指定する方法を紹介します。
方法

Colorの色を16進数で指定するには、extensionでイニシャライザを追加します。
まず、以下のように与えられた16進数を色に変換するイニシャライザを追加します。
extension Color {
init(_ hex: UInt, alpha: Double = 1) {
self.init(
.sRGB,
red: Double((hex >> 16) & 0xFF) / 255,
green: Double((hex >> 8) & 0xFF) / 255,
blue: Double(hex & 0xFF) / 255,
opacity: alpha
)
}
}
そして、必要な場面でColorの引数に16進数を指定します。
//第1引数に16進数、第2引数に透明度
Color(0xFF0000, alpha: 1.0)
これでColorの色を16真数で指定できるようになります。
使用例

struct ContentView: View {
var body: some View {
VStack {
Color(0xFF0000, alpha: 1.0)
.frame(width: 200, height: 200)
Color(0x00FF00, alpha: 1.0)
.frame(width: 200, height: 200)
Color(0x0000FF, alpha: 1.0)
.frame(width: 200, height: 200)
}
}
}
extension Color {
init(_ hex: UInt, alpha: Double = 1) {
self.init(
.sRGB,
red: Double((hex >> 16) & 0xFF) / 255,
green: Double((hex >> 8) & 0xFF) / 255,
blue: Double(hex & 0xFF) / 255,
opacity: alpha
)
}
}
コメント