構造体


EnvironmentValues


ビュー階層を通じて伝播される環境値のコレクション。


iOS 13.0+ iPadOS 13.0+ Mac Catalyst 13.0+ macOS 10.15+ tvOS 13.0+

visionOS 1.0+ watchOS 6.0+

struct EnvironmentValues




概観


SwiftUI は、EnvironmentValues 構造体内の値のコレクションをあなたのアプリのビューに公開します。この構造体から値を読み取るには、Environment プロパティラッパーを使用してプロパティを宣言し、値のキーパスを指定します。例えば、現在のロケールを読み取るには以下のようにすることができます。


@Environment(\.locale) var locale: Locale

あなたの宣言したプロパティを使用して、ビューのレイアウトを動的に制御します。SwiftUI は、pixelLengthscenePhaselocale など、多くの環境値をデバイス特性、システム状態、ユーザー設定に基づいて自動的に設定または更新します。lineLimit など、その他の環境値については、SwiftUI が適切なデフォルト値を提供します。


environment(_:_:) ビュー修飾子を使用して、一部の値を設定またはオーバーライドできます。


MyView()
.environment(\.lineLimit, 2)

あなたの設定した値は、変更対象のビュー(ビュー階層内の子孫を含む)の環境に影響しますが、異なる環境修飾子を適用する所までしか影響しません。


SwiftUI は、一部の値を設定する専用のビュー修飾子を提供しており、これによりコードの可読性が向上します。例えば、lineLimit 値を直接設定するのではなく、前の例のように lineLimit(_:) 修飾子を使用する必要があります。


MyView()
  .lineLimit(2)

場合によっては、専用のビュー修飾子を使用することで、追加の機能が提供されます。例えば、ポップオーバーのようなビューを表示する場合、新しい値が表示コンテナに確実に伝播されるようにするには、 colorScheme を直接設定するのではなく、 preferredColorScheme(_:) 修飾子を使用しなければなりません。


MyView()
  .popover(isPresented: $isPopped) {
    PopoverContent()
        .preferredColorScheme(.dark)
}

環境値構造体への拡張で新しいプロパティを宣言し、変数宣言に Entry() マクロを適用して、カスタム環境値を作成します。


extension EnvironmentValues {
    @Entry var myCustomValue: String = "Default value"
}

extension View {
    func myCustomValue(_ myCustomValue: String) -> some View {
        environment(\.myCustomValue, myCustomValue)
    }
}

あなたの値のクライアントは通常の方法で値にアクセスし、Environment プロパティラッパーを使用して値を読み取り、myCustomValue ビュー修飾子を使用して値を設定します。





トピックス


値の作成とアクセス


init()

環境値インスタンスを作成します。


subscript(_:)

カスタムキーに関連した環境値にアクセスします。


var description: String

環境値インスタンスの内容を表す文字列。




@@@@@@@@@@@@@@
9/06ここまで
@@@@@@@@@@@@@@














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ