我初始化了一个空的observable,如下所示:
var subCategories = Observable<[String]>.empty()
字符串如何检查observable是否为空?如果observable为空,我希望向用户显示“空视图”,否则在tableview中显示数据。
g2ieeal71#
创建一个bool Observable来显示/隐藏emptyView:
let hideEmptyView = subCategories.map{!$0.isEmpty}
字符串然后将此hideEmptyView Bool Observable绑定到yourEmptyView.rx.isHidden
hideEmptyView
yourEmptyView.rx.isHidden
wsewodh22#
你必须在Observable上使用filter:
viewModel.filteredUsers.asObservable() .filter({ [weak self] array in guard let self = self else {return true} if array.isEmpty { self.emptyListContainer.alpha = 1 self.tableView.alpha = 0 } else { self.emptyListContainer.alpha = 0 self.tableView.alpha = 1 } return true }) .bind(to: tableView.rx.items(cellIdentifier: "ContactsTableViewCell", cellType: ContactsTableViewCell.self)) { (row, user, cell) in cell.titleLbl.text = user.name } .disposed(by: disposeBag)
字符串
ugmeyewa3#
一种解决方案是第一个月
sqserrrh4#
使用Observable以外的BehaviourRelay。
import RxCocoa import RxSwift var subCategories = BehaviorRelay<[String]>(value: []) let emptyView = UIStackView() func addObservers() { subCategories.asObservable().subscribe { _ in self.emptyView.isHidden = !self.subCategories.value.isEmpty }.disposed(by: DisposeBag()) }
4条答案
按热度按时间g2ieeal71#
创建一个bool Observable来显示/隐藏emptyView:
字符串
然后将此
hideEmptyView
Bool Observable绑定到yourEmptyView.rx.isHidden
wsewodh22#
你必须在Observable上使用filter:
字符串
ugmeyewa3#
一种解决方案是
第一个月
sqserrrh4#
使用Observable以外的BehaviourRelay。
字符串