我使用UITableView启用“滑动删除”动画。
我需要监视didDeselectCell
方法以启用/禁用应用程序上的某些控件。
但是,如果用户启动“滑动删除”手势,则打开“删除”按钮然后反转手势(未完成),取消选择单元格并且不会注册任何事件。
两个问题:
didDeselectCell
事件?只有当用户点击选择一行而另一行已被选中时,才会调用didDeselectRowAt
(和willDeselectRowAt
)。
编辑开始时,或通过.deselectRow(at: ...
或.selectRow(at: ...
等代码取消选择/选择时不调用。
一种选择是实施willBeginEditingRowAt
:
func tableView(_ tableView: UITableView, willBeginEditingRowAt indexPath: IndexPath) {
if let iPath = tableView.indexPathForSelectedRow {
print("the row at \(iPath) was selected...")
// do stuff for that row
}
}
根据您需要做的所有事情,这可能适用于您的情况,也可能不适用。