UITableView:尽管未选择单元格,但未调用“ didDeselectCell”方法

时间:2019-03-26 16:13:29

标签: ios swift uitableview gesture delete-row

我将UITableView与启用的“滑动删除”动画一起使用。

我需要监视didDeselectCell方法来启用/禁用应用程序上的某些控件。

但是,如果用户启动“滑动删除”手势,打开“删除”按钮,然后反转该手势(未完成),则该单元格将被取消选择,并且没有任何事件被注册。

两个问题:

  1. 在这种情况下是否还可以启用didDeselectCell事件触发?
  2. 如何通过“擦除以删除”来自动通知取消选择该单元格的通知?

1 个答案:

答案 0 :(得分:2)

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
    }
}

根据您需要做的一切,这可能会或可能不会适合您的情况。