web-dev-qa-db-ja.com

Swiftui:アセットカタログからのカラーセットを使う

Swiftuiでは、アセットカタログのカラーセットを使用してカラーセットから色を取得できます。

extension Color {
    static let coral = Color("coral")
}
 _

これには文字列に設定された名前が必要で、多くのカラーセットでは非常に面倒です。アセットカタログから画像を取得するには、画像リテラルを使用する方法と同様のカラーセットを取得する別の方法がありますか?または、冗長なものだけではありません。

そうでない場合は、Swiffuiでプログラム的に動的な色が作成されていますか?たとえば、UIKitで行われる方法です。

extension UIColor {
    static let dynamicColor = UIColor { $0.userInterfaceStyle == .dark ? .black : .white }
}
 _
15
JWK

資産カタログの動的色を定義するための代替方法を共有したいが、ような退屈なコードを書く必要はない

Color("yellow")
 _

1.いつものように資産カタログで色を定義します

enter image description here

2.コードで、あなたの色を変数として定義する場所を見つけてください。私の場合はこのようなものになるでしょう:

/// ColorExtension.Swift 

static let ui = Color.UI()

struct UI {
     let yellow = Color("yellow")
}
 _

3.終了します

このようなあなたの色を使う:

Text("Hello").background(Color.ui.yellow)
 _

これは、1回だけのコードにハードコーディングされた色を書き込む必要があります。

0
Johnny