元のドキュメント: developer.apple.com/documentation/swiftui/view/foregroundstyle(_:)


インスタンスメソッド


foregroundStyle(_:)


ビューの前面要素に与えられたスタイルを使用するように設定します。


iOS 15.0+ iPadOS 15.0+ Mac Catalyst 15.0+ macOS 12.0+

tvOS 15.0+ visionOS 1.0+ watchOS 8.0+

nonisolated
func foregroundStyle<S>(_ style: S) -> some View where S : ShapeStyle




パラメータ


style

前景要素を塗りつぶす際に使用すべき色またはパターン。特定の値を指定するには、Color または image(_:sourceRect:scale:) を使用するか、linearGradient(colors:startPoint:endPoint:) のようなグラデーション型を使用します。包含ビューのスタイルに相対的なスタイルを設定するには、primary のようなセマンティックスタイルを使用します。



戻り値


与えられた前景スタイルを使用するビュー。



以下で言及


ビューの構成



議論


テキスト、図形、テンプレート画像(シンボルを含む)などの前景コンテンツのスタイルを設定するには、このメソッドを使用します。


HStack {
    Image(systemName: "triangle.fill")
    Text("Hello, world!")
    RoundedRectangle(cornerRadius: 5)
        .frame(width: 40, height: 20)
}
.foregroundStyle(.teal)

上記の例では、teal 色の前景要素が一列に並んだものを作成します。



ShapeStyle プロトコルに準拠するスタイルであれば、どれでも使用できます。例えば、上記の例にある teal 色や、以下に示す linearGradient(colors:startPoint:endPoint:) グラデーションなどです。


Text("Gradient Text")
    .font(.largeTitle)
      .foregroundStyle(
        .linearGradient(
            colors: [.yellow, .blue],
              startPoint: .top,
              endPoint: .bottom
          )
      )


ヒント


単一の Shape インスタンスをスタイルで満たしたい場合は、より効率的な fill(style:) シェイプ修飾子を使用してください。

SwiftUI は、与えられたスタイルに対してコンテキスト依存のレンダリングを生成します。たとえば、アセットカタログから読み込んだ Color は、明るい色と暗い色で異なる表示になる場合があり、また、一部のスタイルはプラットフォームによっても異なります。


ShapeStyle/secondary のような階層型前景スタイルは、独自のスタイルを適用するのではなく、他のスタイルを修正します。具体的には、階層型スタイルの名前で与えられた範囲で、現在の前景スタイルのプライマリレベルを修正します。修正対象の現在の前景スタイルを見つけるために、SwiftUI は foregroundStyle(_:) または foregroundColor(_:) 修飾子で適用された、最も内側の包含スタイルを探します。スタイルを指定していない場合、SwiftUI は以下の例のようにデフォルトの前景スタイルを使用します。


VStack(alignment: .leading) {
    Label("Primary", systemImage: "1.square.fill")
    Label("Secondary", systemImage: "2.square.fill")
        .foregroundStyle(.secondary)
}


囲んでいる VStack に前景スタイルを追加すると、階層的なスタイル設定もそれに応じて変化します。


VStack(alignment: .leading) {
    Label("Primary", systemImage: "1.square.fill")
    Label("Secondary", systemImage: "2.square.fill")
        .foregroundStyle(.secondary)
}
.foregroundStyle(.blue)


ビューにカスタムスタイルを適用すると、そのビューまたはその子ビュー内の前景要素に対して、背景マテリアルを追加することで得られるはずの鮮やかさ効果が無効になります(たとえば、background(_:ignoresSafeAreaEdges:) 修飾子を使用した場合など)。ただし、デフォルトの前景に適用される階層スタイルでは、鮮やかさは無効になりません。





以下も見よ


スタイリングコンテンツ


func border<S>(S, width: CGFloat) -> some View

指定されたスタイルと幅で、このビューに境界線を追加します。


func foregroundStyle<S1, S2>(S1, S2) -> some View

子ビューにおける前景スタイルの第一レベルと第二レベルを設定します。


func foregroundStyle<S1, S2, S3>(S1, S2, S3) -> some View

前景スタイルの第一、第二、および第三レベルを設定します。


func backgroundStyle<S>(S) -> some View

ビュー内の背景をレンダリングするために指定されたスタイルを設定します。


var backgroundStyle: AnyShapeStyle?

設定するとデフォルトのシステム背景スタイルを上書きするオプションのスタイル。


protocol ShapeStyle

図形を描画する際に使用する色またはパターン。


struct AnyShapeStyle

型が消去された ShapeStyle 値。


struct Gradient

それぞれがパラメータ化された位置値を持つカラー停止点の配列として表現されるカラーグラデーション。


struct MeshGradient

配置された色の 2 次元グリッドによって定義される 2 次元グラデーション。


struct AnyGradient

色のグラデーション。


struct ShadowStyle

影をレンダリングする際に使用するスタイル。


struct Glass

リキッドガラス材料の構成を定義する構造。

















トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ