[SwiftUI]リスト(list)の要素を削除する方法

SwiftUI

Listビューの要素を削除する方法について解説します。

スポンサーリンク

方法

Listの要素を削除する方法は、ForEachを使っていることが前提となっています。

具体的には、ForEachの.onDeleteを使います。

func onDelete(perform : (indexSet) -> Void )

performクロージャは、要素を判別するインデックスを引数として受け取り、クロージャー内で削除処理をします。

例えば、配列の要素を削除する例を紹介します。

List {
            ForEach(arrayBox, id: \.self) { name in
                Text(name)
            }
            .onDelete(perform: { indexSet in
                self.arrayBox.remove(atOffsets: indexSet)
            })
        }

.onDeleteでは、配列のremoveメソッドで削除処理を行う処理を記述しています。

.onDeleteを使用すると、要素を左にスワイプすることで削除処理が表示されるようになっています。

まとめ

基本的な流れは、ForEachを使っていることを前提として、

  1. ForEachの.onDeleteを呼び出す
  2. 引数のインデックスを使った削除処理を記述

削除処理は、ForEachで使っているデータによって使い分けでください。

コメント

タイトルとURLをコピーしました