假设我有一个SwiftUI视图,显示按部门分组的员工列表,如何删除部门中的项目? 与UITableView中的向左滑动删除行为相同。
import SwiftUI
struct ContentView: View {
var data: [String : [String]] = ["DeptA": ["EmpA", "EmpB", "EmpC"], "DeptB": ["EmpD", "EmpE", "EmpF"]]
var body: some View {
NavigationView {
List {
ForEach(data.keys.map { String($0) }, id: \.self) { dept in
Section(header: Text(dept)) {
ForEach(self.data[dept]!, id: \.self) { emp in
Text(emp)
}.onDelete(perform: self.deleteEmp)
}
}
}
.navigationBarTitle("Employees")
}
}
private func deleteEmp(indexSet: IndexSet) {
print(indexSet.first!)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
.onDelete
创建一个函数,其中您将要删除的索引集合以及部门或其他标识信息一起传递给self.deleteEmp
。 - Fabian