Skip to main content

ForEach で順番も取得したい

enumerated() を使う方法

swift
ForEach(Array(names.enumerated()), id: \.element) { idx, name in
Text("\(idx) : \(name)")
}

indices を使う方法

swift
ForEach(names.indices, id: \.self) { idx in
let name = names[idx]
Text("\(idx) : \(name)")
}

List .. selection で使いたい場合

どちらのパターンだとしても .tag(..) をつければ良い

swift
List(names, id: \.self, selection: $selectedName) { name in
Text(name)
}

swift
List(selection: $selectedName) {
ForEach(Array(files.enumerated()), id: \.element) { idx, name in
Text("\(idx) : \(name)")
.tag(name)
}
}