Structure

Binding

A property wrapper type that can read and write a value owned by a source of truth. あるプロパティラッパー型、それは信頼できる情報源によって所有される値を読み書き可能です。

Declaration 宣言

@frozen @propertyWrapper @dynamicMemberLookup struct Binding<Value>

Overview 概要

Use a binding to create a two-way connection between a property that stores data, and a view that displays and changes the data. A binding connects a property to a source of truth stored elsewhere, instead of storing data directly. バインディングを使って双方向接続を、データを格納するあるプロパティ、そしてデータを表示および変更するあるビューの間で作成してください。バインディングは、あるプロパティをどこか他で格納される信頼できる情報源に接続します、データを直接に格納することなしに。 For example, a button that toggles between play and pause can create a binding to a property of its parent view using the Binding property wrapper.


struct PlayButton: View {
    @Binding var isPlaying: Bool


    var body: some View {
        Button(isPlaying ? "Pause" : "Play") {
            isPlaying.toggle()
        }
    }
}

The parent view declares a property to hold the playing state, using the State property wrapper to indicate that this property is the value’s source of truth.


struct PlayerView: View {
    var episode: Episode
    @State private var isPlaying: Bool = false


    var body: some View {
        VStack {
            Text(episode.title)
                .foregroundStyle(isPlaying ? .primary : .secondary)
            PlayButton(isPlaying: $isPlaying) // Pass a binding.
        }
    }
}

When PlayerView initializes PlayButton, it passes a binding of its state property into the button’s binding property. Applying the $ prefix to a property wrapped value returns its projectedValue, which for a state property wrapper returns a binding to the value. PlayerViewPlayButtonを初期化する時、それはそれの状態プロパティのバインディングをボタンのもつバインディングプロパティへと渡します。$接頭辞をプロパティラップ値に適用することは、それのprojectedValueを返します、それはある状態プロパティラッパーに対して、その値へのバインディングを返します。

Whenever the user taps the PlayButton, the PlayerView updates its isPlaying state. ユーザがPlayButtonをタップする時はいつでも、PlayerViewはそれのisPlaying状態を更新します。

Topics 話題

Creating a Binding バインディングを作成する

Getting the Value 値を取得する

Applying Animations アニメーションを適用する

Applying Transactions トランザクションを適用する

See Also 参照

View State ビュー状態