RxSwift与UITableView的使用,之前文章简单的实现了一下。今天主要是实现如何处理UITableViewCell上的按钮事件。以前我们通常会选择使用代理、闭包、通知这些方法中的一个方法,我个人喜欢闭包。但是现在已经开始使用RxSwift,所以一起来看看RxSwift中我们如何处理按钮事件。
UITableViewCell的内部事件
一般对于cell的点击,会触发其代理方法:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// 处理cell的点击事件
}
在Rx中,我们处理如下:
tableView.rx.modelSelected(ItemModel.self)
.subscribe(onNext: { value in
print(value)
}).disposed(by: disposeBag)
或者先获取点击的位置,然后在根据点击的位置获取数据
tableView.rx.itemSelected.asObservable()
.subscribe(onNext: { index in
print(index)
}).disposed(by: disposeBag)
由上可知对于cell的处理还是很简单的。
UITableViewCell上的按钮事件
比较好的方案就是闭包,前面也谈到了。那么我们如何使用Rx来处理呢?先看一个demo