🐡
foregroundStyleにおけつ三つの応用
foregroundStyle()は、iOS15から導入される美しいカラー表示機能です。foregroundStyle()の()の中には、以下の四つのSemantic Colorを記入するのが最適です
foregroundStyle(.primary)
foregroundStyle(.secondary)
foregroundStyle(.tertiary)
foregroundStyle(.quaternary)
()の中には一般なSwift Colorを記入するのはもちろんOKですが、
上の四つ記入値でないと、様々な美しい効果が出ないらしいです。
応用1:そのままのカラー
VStack {
Text("Primary")
.foregroundStyle(.primary)
Text("Secondary")
.foregroundStyle(.secondary)
Text("Tertiary")
.foregroundStyle(.tertiary)
Text("Quaternary")
.foregroundStyle(.quaternary)
}

カラーをそのまま表示。使い方はforegroundColor()と同じです。
応用2:テーマカラー
VStack {
Text("Primary")
.foregroundStyle(.primary)
Text("Secondary")
.foregroundStyle(.secondary)
Text("Tertiary")
.foregroundStyle(.tertiary)
Text("Quaternary")
.foregroundStyle(.quaternary)
}
.font(.largeTitle)
+.foregroundStyle(.purple)

一つのテーマカラーに対して、4つの子カラーとして表せます。
応用3:マテリアルデザイン
+ZStack {
+ Color.purple
VStack {
Text("Primary")
.foregroundStyle(.primary)
Text("Secondary")
.foregroundStyle(.secondary)
Text("Tertiary")
.foregroundStyle(.tertiary)
Text("Quaternary")
.foregroundStyle(.quaternary)
+ }
+ .background(.thickMaterial)
+ .font(.largeTitle)
}

条件としては
① 文字の背景の何らかの色か画像があり(上図の紫の部分)
② 文字のコンテナにbackground(.thickMaterial)が指定
マテリアルデザインはかなり僅かなの効果で
対照図を比べなから見極めましょう
| マテリアルデザインあり | マテリアルデザインなし |
|---|---|
![]() |
![]() |
おまけ
親Viewを借りずにText()にbackground()とforegroundStyle()を指定して同じくマテリアルデザイン効果ができます。
ZStack {
Image("image_name")
Text(resort.imageCredit)
.background(.thinMaterial)
.foregroundStyle(.secondary)
}



Discussion