UITableView:虽然取消选择了单元格,但未调用“didDeselectCell”方法

问题描述 投票:0回答:1

我使用UITableView启用“滑动删除”动画。

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

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

两个问题:

  1. 是否有可能在这种情况下启用didDeselectCell事件?
  2. 如何获得通知,通过“滑动删除”自动取消选择单元格?
ios swift uitableview gesture delete-row
1个回答
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
    }
}

根据您需要做的所有事情,这可能适用于您的情况,也可能不适用。

© www.soinside.com 2019 - 2024. All rights reserved.