init()
subscript<K>(K.Type) -> K.Value
var description: String
Availability 有効性
Technology
struct EnvironmentValues
SwiftUI exposes a collection of values to your app’s views in an Environment
structure. To read a value from the structure, declare a property using the Environment
property wrapper and specify the value’s key path. For example, you can read the current locale:
SwiftUIは、いくつかの値からなるあるコレクションを、あなたのアプリのもつビューへと、Environment
構造体において露出します。構造体からある値を読み出すには、あるプロパティをEnvironment
プロパティラッパーを使って宣言して、そして値のもつキーパスを指定してください。例えば、あなたは現在のロケールを読み出せます:
var locale: Locale (\.locale)
Use the property you declare to dynamically control a view’s layout. SwiftUI automatically sets or updates many environment values, like pixel
, scene
, or locale
, based on device characteristics, system state, or user settings. For others, like line
, SwiftUI provides a reasonable default value.
あなたが宣言するプロパティを使うことで、あるビューのもつレイアウトを動的に制御してください。SwiftUIは、pixel
、scene
、またはlocale
のような多くの環境値を、機器の特徴、システム状態、またはユーザ設定に基づいて自動的に設定または更新します。他のものに対して、たとえばline
などに、SwiftUIは理にかなった省略時の値を提供します。
You can set or override some values using the environment(_:
view modifier:
あなたは、いくつかの値をenvironment(_:
ビュー修飾子を使って設定またはオーバーライドできます:
MyView()
.environment(\.lineLimit, 2)
The value that you set affects the environment for the view that you modify — including its descendants in the view hierarchy — but only up to the point where you apply a different environment modifier. あなたが設定する値は、あなたが修正するビューに対する環境に影響を及ぼします — それのビュー階層における子孫を含めて — しかしあなたがある異なる環境修飾子を適用するところの地点までに限ります。
SwiftUI provides dedicated view modifiers for setting some values, which typically makes your code easier to read. For example, rather than setting the line
value directly, as in the previous example, you should instead use the line
modifier:
SwiftUIは、専用のビュー修飾子をいくつかの値の設定に対して提供します、それは概してあなたのコードをより読みやすくするものです。例えば、以前の例でのようにline
値を直接に設定するよりも、あなたはline
修飾子を代わりに使うべきです:
MyView()
.lineLimit(2)
In some cases, using a dedicated view modifier provides additional functionality. For example, you must use the preferred
modifier rather than setting color
directly to ensure that the new value propagates up to the presenting container when presenting a view like a popover:
いくつかの場合において、専用ビュー修飾子を使うことは、追加の機能性を提供します。例えば、あなたはpreferred
修飾子を使わなければなりません、color
を直接に設定するのではなくて、そうして新しい値がその提示コンテナに至るまで伝播することをポップオーバーのような値を提示している時に確実にします。
MyView()
.popover(isPresented: $isPopped) {
PopoverContent()
.preferredColorScheme(.dark)
}
Create custom environment values by defining a type that conforms to the Environment
protocol, and then extending the environment values structure with a new property. Use your key to get and set the value, and provide a dedicated modifier for clients to use when setting the value:
あつらえの環境値を、Environment
プロトコルに準拠する型を定義すること、そしてそれから環境値構造体を新しいプロパティで拡張することによって作成してください。あなたのキーを使って値を取得および設定してください、そしてある専用修飾子をクライアントに提供して値を設定する時に使ってください:
private struct MyEnvironmentKey: EnvironmentKey {
static let defaultValue: String = "Default value"
}
extension EnvironmentValues {
var myCustomValue: String {
get { self[MyEnvironmentKey.self] }
set { self[MyEnvironmentKey.self] = newValue }
}
}
extension View {
func myCustomValue(_ myCustomValue: String) -> some View {
environment(\.myCustomValue, myCustomValue)
}
}
Clients of your value then access the value in the usual way, reading it with the Environment
property wrapper, and setting it with the my
view modifier.
あなたの値のクライアントは、それからその値に通常の方法でアクセスします、それをEnvironment
プロパティラッパーで読み出すこと、そしてそれをmy
ビュー修飾子で設定することで。
init()
subscript<K>(K.Type) -> K.Value
var description: String
var accessibilityDifferentiateWithoutColor : Bool
var accessibilityEnabled : Bool
var accessibilityInvertColors : Bool
var accessibilityLargeContentViewerEnabled : Bool
var accessibilityReduceMotion : Bool
var accessibilityReduceTransparency : Bool
var accessibilityShowButtonShapes : Bool
var accessibilitySwitchControlEnabled : Bool
var accessibilityVoiceOverEnabled : Bool
var legibilityWeight : LegibilityWeight ?
var dismiss: DismissAction
var dismissSearch : DismissSearchAction
var openURL : OpenURLAction
var refresh: RefreshAction ?
var resetFocus : ResetFocusAction
var colorScheme : ColorScheme
var colorSchemeContrast : ColorSchemeContrast
var displayScale : CGFloat
var horizontalSizeClass : UserInterfaceSizeClass ?
var imageScale : Image.Scale
var pixelLength : CGFloat
var verticalSizeClass : UserInterfaceSizeClass ?
var widgetFamily : WidgetFamily
var calendar: Calendar
var locale: Locale
var timeZone : TimeZone
var undoManager : UndoManager ?
var editMode : Binding<EditMode >?
var isEnabled : Bool
var isFocused : Bool
var isLuminanceReduced : Bool
var isPresented : Bool
var isSearching : Bool
var scenePhase : ScenePhase
var allowsTightening : Bool
var disableAutocorrection : Bool?
var dynamicTypeSize : DynamicTypeSize
var font: Font?
var layoutDirection : LayoutDirection
var lineLimit : Int?
var lineSpacing : CGFloat
var minimumScaleFactor : CGFloat
var multilineTextAlignment : TextAlignment
var textCase : Text.Case?
Text
when displayed, using the environment’s locale.
表示される時にText
のケースを変形する文体上のオーバーライド、環境のもつロケールを使います。
var truncationMode : Text.TruncationMode
var controlSize : ControlSize
var controlActiveState : ControlActiveState
var defaultMinListHeaderHeight : CGFloat?
var defaultMinListRowHeight : CGFloat
var defaultWheelPickerItemHeight : CGFloat
var headerProminence : Prominence
var keyboardShortcut : KeyboardShortcut ?
var menuIndicatorVisibility : Visibility
var backgroundMaterial : Material?
var redactionReasons : RedactionReasons
var symbolRenderingMode : SymbolRenderingMode ?
nil
denoting that the mode is picked automatically using the current image and foreground style as parameters.var symbolVariants : SymbolVariants
var presentationMode : Binding<PresentationMode >
struct PresentationMode
struct Environment
protocol EnvironmentKey