SwiftUI でアプリ全体のアクセントカラーを指定する Accent color for the entire SwiftUI app
新規アプリで Xcode のテンプレートからプロジェクトを作成すると Assets.xcassets に AccentColor
という名称のカラーアセットが用意されている。これに色を設定するとアプリ全体の AccentColor として反映される。
import SwiftUI struct ContentView: View { var body: some View { NavigationView { Button("Button") { } .toolbar { ToolbarItem(placement: .automatic) { Button(action: {}, label: { Text("Button") }) } } } } }
既存プロジェクトの場合
既存プロジェクトの場合は同名のカラーアセット AccentColor
を用意するだけでは反映されない。
プロジェクトテンプレートのビルド設定を見ると Global Accent Color Name という項目がありそこに AccentColor
の名称が指定されていた。
設定キーは ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME
らしい。
ビルド時にはこの値を見てコンパイルされる。
なのでカラーアセットの名称も AccentColor
固定ではなくてここで自由に設定する事ができる。*1
*1:記事タイトルに SwiftUI と入れたけどこの設定は UIKit でも同じ