Swiftui 移除滑动删除功能
Posted
技术标签:
【中文标题】Swiftui 移除滑动删除功能【英文标题】:Swiftui remove swipe to delete functionality 【发布时间】:2021-01-15 22:18:48 【问题描述】:有没有办法删除或停用滑动删除功能,该功能仅删除每个编辑按钮的项目?
【问题讨论】:
@Yrb 你应该仔细看看这个问题。 是的,你是对的。 . .我完全误读了那个。这就是我在一天结束时这样做的结果...... 如果我上周的回答有帮助,您可以接受这个答案,以便人们以后更容易找到这个问题。 (你也会获得一些奖励声望) 【参考方案1】:您可以使用deleteDisabled(_:)
,根据EditMode
状态限制List
/Form
的删除功能。
以下是一个简短的示例,演示仅在编辑模式下有效的删除:
struct ContentView: View
@State private var data = Array(1 ... 10)
var body: some View
NavigationView
Form
DataRows(data: $data)
.navigationTitle("Delete Test")
.toolbar
EditButton()
struct DataRows: View
@Environment(\.editMode) private var editMode
@Binding private var data: [Int]
init(data: Binding<[Int]>)
_data = data
var body: some View
ForEach(data, id: \.self) item in
Text("Item: \(item)")
.onMove indices, newOffset in
data.move(fromOffsets: indices, toOffset: newOffset)
.onDelete indexSet in
data.remove(atOffsets: indexSet)
.deleteDisabled(editMode?.wrappedValue != .active)
【讨论】:
以上是关于Swiftui 移除滑动删除功能的主要内容,如果未能解决你的问题,请参考以下文章
让 tableView 从 NSUserDefaults 中删除滑动删除项目 - 如何将这两个功能结合在一起?