Swift 使用RxTableView、mvvm体系结构在tableView中显示空状态标签
我正在学习rxswift,我有一个Swift 使用RxTableView、mvvm体系结构在tableView中显示空状态标签,swift,mvvm,Swift,Mvvm,我正在学习rxswift,我有一个ViewController和tableView 我使用的是MVVM架构,因此tableView绑定到ViewModel上,它可以很好地显示数据 但是当我没有数据时,我想把TableView标签置为空状态 如果可能的话,我不知道怎么做 这是我目前的代码: func bindViewModel() { let inputs = viewModel.inputs let outputs = viewModel.outputs btnS
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
最简单的解决方案是将可观察对象转换为驱动程序,然后返回空状态模型,如下所示:
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