【发布时间】:2017-11-04 00:07:14
【问题描述】:
我看到的问题是,当我用.destructive 创建UIContextualAction 并在completionHandler 中传递true 时,似乎有一个删除行的默认操作。
如果您从 Xcode 的模板创建一个新的 Master-Detail App 并将此代码添加到 MasterViewController...
override func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let testAction = UIContextualAction(style: .destructive, title: "Test") { (_, _, completionHandler) in
print("test")
completionHandler(true)
}
return UISwipeActionsConfiguration(actions: [testAction])
}
您滑动的行将被删除。请注意,那里没有更新表格视图的代码。此外,模型没有更新,如果您向上滚动以导致重新加载该行,它将重新出现。
在这种情况下传递false 不会删除该行。或者使用.normal 样式和true 也不会删除该行。
.destructive 和 true 导致默认删除该行。
谁能解释这种行为?为什么要删除该行?
【问题讨论】:
标签: swift uitableview swipe ios11