SwiftUI の EditMode について

勉強したのでアウトプットする


EditMode

公式ドキュメントより。

You receive an optional binding to the edit mode state when you read the editMode environment value. The binding contains an EditMode value that indicates whether edit mode is active, and that you can use to change the mode. To learn how to read an environment value, see EnvironmentValues.

「編集モード」をバインディングしたオプショナルの環境変数のこと。このバインディングには、編集モードが有効かを示す `EditMode` を含み、モードを変更するために使用できる。

組み込みの View には EditMode によって自動的にアピアランスと振る舞いを変更するものがある。

Example

テキストフィールドを編集する例。 editMode を通してバインディングした name 変数を変更している。 ボタンをタップすると編集モードが有効になり、もう一度タップすると無効になる。

@Environment(\.editMode) private var editMode
@State private var name = "Maria Ruiz"


var body: some View {
    Form {
        if editMode?.wrappedValue.isEditing == true {
            TextField("Name", text: $name)
        } else {
            Text(name)
        }
    }
    .animation(nil, value: editMode?.wrappedValue)
    .toolbar { // Assumes embedding this view in a NavigationView.
        EditButton()
    }
}

https://developer.apple.com/documentation/swiftui/editmode