【问题标题】:Displaying empty state label in tableView with RxTableView , mvvm architecture使用 RxTableView , mvvm 架构在 tableView 中显示空状态标签
【发布时间】:2018-10-19 18:26:22
【问题描述】:

我正在学习 rxswift,我有一个 ViewController 和一个 tableView
我使用的是 MVVM 架构,所以 tableView 绑定到 ViewModel 并且它可以很好地显示数据。

但是当我没有数据时,我想将TableView 标签设为空状态 如果可能的话,我不知道该怎么做。

这是我目前的代码:

func bindViewModel() {    
    let inputs = viewModel.inputs
    let outputs = viewModel.outputs
    btnSomeAction.rx.action = inputs.someAction
    outputs.usersList
        .bind(to: tableView.rx.items(cellIdentifier: "UserTableViewCell", cellType: UserTableViewCell.self)) { (_,element,cell) in
            cell.setData(name: element.name, avatar: element.avatar)
    }
    .disposed(by: disposeBag)
}

感谢大家的帮助。
附:
我知道如何在没有rx 且元素数量为零的通用表中做到这一点。问题是关于rxtable

【问题讨论】:

    标签: swift mvvm


    【解决方案1】:

    最简单的解决方案是将可观察对象转换为驱动程序,并返回空状态模型,如下所示:

       outputs.usersList
        .asDriver(onErrorJustReturn: [])
        .drive(to: tableView.rx.items(cellIdentifier: "UserTableViewCell", cellType: UserTableViewCell.self)) { (_,element,cell) in
            cell.setData(name: element.name, avatar: element.avatar)
    }
    .disposed(by: disposeBag)
    

    据我所知,更复杂的解决方案是使用 RxDataSources RxDataSources - How to add a custom empty cell when there's no data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 2020-07-20
      • 2014-01-19
      • 1970-01-01
      • 2017-10-24
      相关资源
      最近更新 更多