【SwiftUI】選択可能なリストの作成方法

この記事は約2分で読めます。

選択可能なリストの作成方法を紹介します。

配列中の選択した行のインデックスを返す方法

Listのパラメータであるselectionを活用することで、選択したインデックスを取得したりすることが可能です。

選択したリストのインデックスを取得できることで、選択した行の一括削除などの機能に応用することができます。

import SwiftUI

//リストに表示する文字列配列
private var fruits = ["apple", "orange", "peach"]

struct ListSample: View {
    //選択結果を保持
    @State var multiSelection = Set<Int>()
    var body: some View {
        VStack {
            //リストを表示する
            //selectionに選択したインデックスを保持
            List(selection: $multiSelection) {
                ForEach(0..<fruits.count, id: \.self) { index in
                    //.tagで指定した値をmultiSelectionに格納する
                    Text(fruits[index]).tag(index)
                }
            }
            //(参考:常に編集モードにする)
            .environment(\.editMode, .constant(.active))
            
            //動作確認用 選択したインデックスを表示
            ForEach(Array(multiSelection), id: \.self) { selection in
                Text("\(selection)")
            }

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