UITableView:"didDeselectCell" 方法未被调用,尽管单元格被取消选择
UITableView: "didDeselectCell" method not called, although cell gets deselected
我使用启用了 "swipe to delete" 动画的 UITableView。
我需要监控 didDeselectCell
方法以 enable/disable 应用程序上的某些控件。
但是,如果用户启动 "swipe to delete" 手势,打开 "delete" 按钮然后反转手势(未完成),单元格将被取消选择并且不会注册任何事件。
两个问题:
- 在这种情况下是否也可以启用
didDeselectCell
事件触发?
- 如何通过 "swipe to delete" 自动取消选择该单元格?
如何获得通知?
didDeselectRowAt
(和 willDeselectRowAt
)仅在用户点击 select 一行而另一行已经 selected 时被调用。
未调用 当编辑开始时,或当使用 .deselectRow(at: ...
或 [=14= 通过代码删除 selecting / selecting ]等
一个选择是实施 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
}
}
根据您需要执行的所有操作,这可能适用于您的情况,也可能不适用。
我使用启用了 "swipe to delete" 动画的 UITableView。
我需要监控 didDeselectCell
方法以 enable/disable 应用程序上的某些控件。
但是,如果用户启动 "swipe to delete" 手势,打开 "delete" 按钮然后反转手势(未完成),单元格将被取消选择并且不会注册任何事件。
两个问题:
- 在这种情况下是否也可以启用
didDeselectCell
事件触发? - 如何通过 "swipe to delete" 自动取消选择该单元格? 如何获得通知?
didDeselectRowAt
(和 willDeselectRowAt
)仅在用户点击 select 一行而另一行已经 selected 时被调用。
未调用 当编辑开始时,或当使用 .deselectRow(at: ...
或 [=14= 通过代码删除 selecting / selecting ]等
一个选择是实施 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
}
}
根据您需要执行的所有操作,这可能适用于您的情况,也可能不适用。