上一篇介绍了中介者,今天的探索也跟中介者有关,中介者真的非常多。直接来看看下面的例子:
let dataOb = BehaviorSubject.init(value: dataArray)
//绑定数据源
dataOb.asObserver()
.bind(to: tableView.rx.items(cellIdentifier: "TestTableViewCell", cellType: TestTableViewCell.self)){ (row, model, cell) in
cell.setUIData(model as! TestModel)
}.disposed(by: disposeBag)
//点击事件
tableView.rx.itemSelected
.subscribe(onNext: { (indexPath) in
print("点击")
}).disposed(by: disposeBag)
有了RxSwift使用tableview
真的很方便,再也不用自己实现各种代理和协议,那我们就来看看它是怎么帮我们做这些的(就看看流程好了😨):
- 进入源码,马上看到
cell
的创建:
原来是_RxTableViewReactiveArrayDataSource
实现了datasource
的方法。
- 接着下一步先是看到了
delegate
的设置:
- 然后返回销毁者之前又设置了
datasource
:
原来再一次走这个函数方法:
-
tableView
的显示完成了,最后就是交互事件的实现:
通过self.delegate.methodInvoked
便可在外面的响应闭包回调交互事件。