SwiftUI の Color の extension 作りましたので、説明します。
Sponsor Link
SwiftUI の Color
そのまま View にも使え、.fill 等にも使用できる 使い勝手の良い SwiftUI の Color ですが、色の指定方法が少し面倒でした。
良いされている System Color は、10 色しかありませんでした。
lightGray とか指定したい
UIColor であれば、もう少し多くの色が指定できるようになっています。
ですが、一部だけです。
自動車のボディカラーほどいかなくともある程度名前で設定できると嬉しいと思ったので、作ってみました。
SwiftUIColorNames
既存の SwiftUI の Color を extension を使って拡張しました。
色の使い方
SwiftUI で用意されている Color.red のように使えるようにしてみました。
SwiftUIColorNames example
1 2 3 |
let indigo = Color.Indigo |
example
サンプルのアプリを作りました。
色名は、enum になっているので、以下のようなコードで全色を表示することができます。
example code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// // ContentView.swift // // Created by : Tomoaki Yagishita on 2020/10/24 // © 2020 SmallDeskSoftware // import SwiftUI import SwiftUIColorNames struct ContentView: View { var body: some View { List( Color.AdditionalColors.allCases, id:\.self) { color in ZStack { Color(hex: color.rawValue) Text("\(Color.mapValueToName[color.rawValue] ?? "invalid Color")") } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } |
まとめ
SwiftUI で Color を名前を使って指定するときに便利だと思いますので、ぜひ使ってみてください。
Sponsor Link