どうも、ちょげ(@chogetarou)です。
SwiftUIのリストを選択可能にする方法について解説します。
常に選択可能

以下は、常に選択可能なリストのコードです。
struct ContentView: View {
@State var selected : Int? = 0
var body: some View {
List(selection: $selected) {
Text("ゴロー")
.tag(0)
Text("ダイゴ")
.tag(1)
Text("イズミ")
.tag(2)
}
.environment(\.editMode, .constant(.active))
}
}
Listのselection引数で選択されている値を判別します。
.environment(\.editMode, .constant(.active))は、リストの状態を編集中に設定しています。
この設定によって、常に選択可能(編集中)になっています。
選択可能かを切り替える
ediModeを使用すると、常に選択可能になっています。
もし、選択可能かを切り替えたいのであれば、editModeを削除して、EditButtonを使用します。
@State var selected : Int? = 0
var body: some View {
VStack {
EditButton()
List(selection: $selected) {
Text("ゴロー")
.tag(0)
Text("ダイゴ")
.tag(1)
Text("イズミ")
.tag(2)
}
}
}
画面上のEditButtonによって、選択できるかを切り替えられるようになります。

合わせて読みたい記事
参考

(アーカイブ)【SwiftUI】複数のアラート(alert)を使う方法
(2020/11/30 更新) 本記事の説明はiOS14以前の内容です。iOS15以降の情報はこちらの記事を御覧ください。 1画面内で複数のアラートを使い分ける方法を解説します。
コメント