XCode 16.4 日本語化計画:
ビュー階層を通じて伝播される環境値のコレクション。
struct EnvironmentValues
SwiftUI は、EnvironmentValues 構造体内の値のコレクションをあなたのアプリのビューに公開します。この構造体から値を読み取るには、Environment プロパティラッパーを使用してプロパティを宣言し、値のキーパスを指定します。例えば、現在のロケールを読み取るには以下のようにすることができます。
@Environment(\.locale) var locale: Locale
あなたの宣言したプロパティを使用して、ビューのレイアウトを動的に制御します。SwiftUI は、pixelLength、scenePhase、locale など、多くの環境値をデバイス特性、システム状態、ユーザー設定に基づいて自動的に設定または更新します。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 ビュー修飾子を使用して値を設定します。
環境値インスタンスを作成します。
カスタムキーに関連した環境値にアクセスします。
環境値インスタンスの内容を表す文字列。