如何使用EditButton
这样的按钮?
或者如何使用按钮从列表中激活编辑模式?
或者如何从EditButton
“edit”/“done”更改名称?
最佳答案
以下实现将EditButton
的功能替换为Button
:
import SwiftUI
struct ContentView: View {
@State var isEditing = false
@State var selection = Set<String>()
var names = ["Karl", "Hans", "Faustao"]
var body: some View {
NavigationView {
VStack {
List(names, id: \.self, selection: $selection) { name in
Text(name)
}
.navigationBarTitle("Names")
.environment(\.editMode, .constant(self.isEditing ? EditMode.active : EditMode.inactive)).animation(Animation.spring())
Button(action: {
self.isEditing.toggle()
}) {
Text(isEditing ? "Done" : "Edit")
.frame(width: 80, height: 40)
}
.background(Color.yellow)
}
.padding(.bottom)
}
}
}
#if DEBUG
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
但是,这样做时,选择处理需要由我们自己执行(这可能是问题,也可能不是问题)。
不幸的是,目前没有太多文档:
https://developer.apple.com/documentation/swiftui/list/3367016-init