SwiftUIでダークモードとライトモードでアイコンにカラーアセットを使用する方法


  1. カラーアセットの作成: XcodeのAssets.xcassetsファイルを開き、新しいカラーセットを作成します。ダークモードとライトモードの両方で使用するカラーを定義します。例えば、"IconColor"という名前のカラーセットを作成します。

  2. アイコンの作成: アイコン画像を作成するか、既存のアイコンを使用します。アイコンの色はカラーアセットから取得するため、アイコン画像はモノクロのものである必要があります。

  3. SwiftUIでのカラーアセットの使用: アイコンを表示するビューで、カラーアセットを使用してアイコンの色を設定します。以下は、シンプルな例です。

import SwiftUI
struct IconView: View {
    @Environment(\.colorScheme) var colorScheme
    var body: some View {
        Image(systemName: "heart.fill")
            .foregroundColor(colorScheme == .dark ? Color("IconColor-Dark") : Color("IconColor-Light"))
    }
}
struct ContentView: View {
    var body: some View {
        VStack {
            Text("アプリのコンテンツ")
            IconView()
        }
    }
}

上記の例では、IconView内で環境変数colorSchemeを使用して現在のカラーモードを取得しています。その値に基づいて、ダークモードの場合は"IconColor-Dark"、ライトモードの場合は"IconColor-Light"という名前のカラーアセットから色を取得します。これにより、ダークモードとライトモードの両方で正しい色が適用されます。

これで、SwiftUIでダークモードとライトモードでアイコンにカラーアセットを使用する方法がわかりました。必要に応じて、上記のコードをカスタマイズして自分のアプリに適用してください。