0

我正在使用 RxDataSources 并尝试为单元格选择创建一个“切换”功能 - 即允许通过点击来选择和取消选择单元格(在单选 tableView 中)。我 tableView.rx.itemSelected用来获取选择,并self?.tableView.deselectRow(at: indexPath, animated: false)取消选择单元格,如果它当前处于选定状态。这似乎基本上有效,但我想回应取消选择。我假设这self?.tableView.deselectRow(at: indexPath, animated: false)会导致tableView.rx.itemDeselected被调用,但从未发生过。我显然错过了一些东西。

任何想法表示赞赏。

4

1 回答 1

3

这与 RxSwift 有关。从这里的方法itemDeselected触发。UITableViewUITableViewDelegate.tableView(_:didDeselectRowAt:)

根据苹果文档deselectRow(at:animated:)不会触发委托功能tableView(_:didDeselectRowAt:)

这就是它没有被触发的原因。

我会说你最好的选择是抽象单元格取消选择的逻辑并在两个地方使用它。您也可以自己调用委托方法,但这通常不是推荐的解决方案。

于 2019-11-12T20:38:02.850 回答