使用 RxSwift 的 TabelView 委托方法

Posted

技术标签:

【中文标题】使用 RxSwift 的 TabelView 委托方法【英文标题】:TabelView Delegate methods using RxSwift 【发布时间】:2017-03-30 11:11:39 【问题描述】:

我将 RxSwift 用于 TableView。我需要计算动态单元格的高度,之前我是在 WillDisplayCell 委托方法中完成的。我不知道如何将 TableView Delegate 方法与 RxSwift 绑定。有人可以帮忙吗?

【问题讨论】:

可能对你有帮助-raywenderlich.com/138547/… 谢谢,但我需要更准确的答案。 嗨,Mehreen,您的问题解决了吗? 是的。已经解决了。 太棒了,享受编码...... 【参考方案1】:

其实你可以。试试这个:

       tableView.rx
        .willDisplayCell
        .subscribe(onNext:  cell, indexPath in
   //Do your will display logic
           )
        .disposed(by: disposeBag)

【讨论】:

您能否为其他人详细说明您的答案。大多数时候,你会回答问题是什么,为什么这个修复有效,等等。 @ankitjaininfo 问题是关于如何使用 Rx 绑定 TableViewDelegate 方法,这是我为 willDisplayCell 委托方法编写的一个示例,其他方法也可以这样做。 我不知道我们可以像这样使用 WillDisplay Cell 方法谢谢...【参考方案2】:

符合你的视图控制器

class YourViewController: UIViewController, UITableViewDelegate

然后将其添加到viewDidLoad()

tableView.rx.setDelegate(self).addDisposableTo(disposeBag)

然后你写UITableViewDelegate方法。

【讨论】:

谢谢,我也是这样做的。它工作得很好。我担心是否有其他方法可以执行相同的任务? 不,没有,只是UITableViewDataSource的相同任务 请问tableView.delegate = self 和使用 rx 设置委托有什么区别? @Ryan 我觉得他们是一样的 tableView.rx.setDelegate 需要 UIScrollViewDelegate 作为参数。

以上是关于使用 RxSwift 的 TabelView 委托方法的主要内容,如果未能解决你的问题,请参考以下文章

如何正确地将 3rd 方库委托转换为 RxSwift Observable

当委托字段不被称为 `delegate` 时实现 `DelegateProxy` (RxSwift/RxCocoa)

将 UIApplicationDelegate 方法转换为 RxSwift Observables

不能在 DelegateProxyType (rxSwift) 中使用 proxyForObject 函数

使用 RxSwift 将 UITableViewCell 中的控件绑定到 ViewModel 的最佳实践

为啥当我滚动我的 tabelview 单元格时我的 imageview 正在缩小?