RxDataSources itemDeselected 没有被调用
RxDataSources itemDeselected not getting called
我正在使用 RxDataSources 并尝试为单元格选择创建一个 "toggle" 函数——即允许通过点击选择和取消选择单元格(在单选 tableView 中)。我在用着
tableView.rx.itemSelected
获取选择,self?.tableView.deselectRow(at: indexPath, animated: false)
取消选择单元格(如果当前处于选中状态)。这个貌似基本可以,但是我要回复取消选择。我假设 self?.tableView.deselectRow(at: indexPath, animated: false)
会导致 tableView.rx.itemDeselected
被调用,但那从未发生过。我显然错过了一些东西。
任何想法表示赞赏。
这与 RxSwift 有关。 itemDeselected
由 UITableView
方法触发 UITableViewDelegate.tableView(_:didDeselectRowAt:)
here.
根据apple docs,deselectRow(at:animated:)
不触发委托函数tableView(_:didDeselectRowAt:)
。
这就是它没有被触发的原因。
我会说你最好的选择是抽象单元取消选择的逻辑并在两个地方使用它。您也可以自己调用委托方法,但这通常不是推荐的解决方案。
我正在使用 RxDataSources 并尝试为单元格选择创建一个 "toggle" 函数——即允许通过点击选择和取消选择单元格(在单选 tableView 中)。我在用着
tableView.rx.itemSelected
获取选择,self?.tableView.deselectRow(at: indexPath, animated: false)
取消选择单元格(如果当前处于选中状态)。这个貌似基本可以,但是我要回复取消选择。我假设 self?.tableView.deselectRow(at: indexPath, animated: false)
会导致 tableView.rx.itemDeselected
被调用,但那从未发生过。我显然错过了一些东西。
任何想法表示赞赏。
这与 RxSwift 有关。 itemDeselected
由 UITableView
方法触发 UITableViewDelegate.tableView(_:didDeselectRowAt:)
here.
根据apple docs,deselectRow(at:animated:)
不触发委托函数tableView(_:didDeselectRowAt:)
。
这就是它没有被触发的原因。
我会说你最好的选择是抽象单元取消选择的逻辑并在两个地方使用它。您也可以自己调用委托方法,但这通常不是推荐的解决方案。