美文网首页Rx
RxSwift源码分析(22)——TableView

RxSwift源码分析(22)——TableView

作者: 无悔zero | 来源:发表于2020-11-14 21:33 被阅读0次

    上一篇介绍了中介者,今天的探索也跟中介者有关,中介者真的非常多。直接来看看下面的例子:

    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真的很方便,再也不用自己实现各种代理和协议,那我们就来看看它是怎么帮我们做这些的(就看看流程好了😨):

    1. 进入源码,马上看到cell的创建:

    原来是_RxTableViewReactiveArrayDataSource实现了datasource的方法。

    1. 接着下一步先是看到了delegate的设置:
    1. 然后返回销毁者之前又设置了datasource

    原来再一次走这个函数方法:

    1. tableView的显示完成了,最后就是交互事件的实现:

    通过self.delegate.methodInvoked便可在外面的响应闭包回调交互事件。

    相关文章

      网友评论

        本文标题:RxSwift源码分析(22)——TableView

        本文链接:https://www.haomeiwen.com/subject/wetmbktx.html