本文介绍了RxSwift重载tableview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
let officialAccountObservable : Observable<[SearchUser]> = SearchAPI.sharedAPI.suggestAccounts()
officialAccountObservable.bind(to: tableView.rx.items(cellIdentifier: "followcell", cellType: FollowCell.self)) {
(index, user , cell) in
if user.profileImagePath.isEmpty == false {
cell.profile.af_setImage(withURL: URL.init(string: user.profileImagePath)!)
}else {
cell.profile.image = UIImage.init(named: "icon_user_03")
}
cell.nickName.text = user.nickName
cell.follow.rx.tap
.debounce(0.3, scheduler: MainScheduler.instance)
.subscribe(onNext: {
[unowned self] in
cell.setFollow(user: user, completion: { (result) in
if(result == true){
}
})
}).addDisposableTo(self.disposeBag)
}.addDisposableTo(disposeBag)
func suggestAccounts() -> Observable<[SearchUser]> {
let uri = Constants.VyrlSearchURL.suggestUsers
return Observable.create { observer in
let request = Alamofire.request(uri, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: Constants.VyrlAPIConstants.getHeader()).responseArray { (response: DataResponse<[SearchUser]>) in
let value = response.result.value
observer.onNext(value!)
observer.onCompleted()
}
return Disposables.create(with: request.cancel)
}
}
我想在代码中重新加载表格视图(result == true)对于重新加载,必须收到OfficialAccountObservable。 我的代码全部结束,我想知道如何在该状态下更新它。
I want to reload the table view in code (result == true) For reload, OfficialAccountObservable must be received. My code is all over and I wonder how I can update it in that state.
推荐答案AFAIK,这是执行此操作的标准方法 -
AFAIK, this is the standard way of doing this -
let source = PublishSubject<Observable<[SearchUser]>>() let officialAccountObservable: Observable<[SearchUser]> = source.switchLatest() source.onNext(suggestAccounts()) // every call will refresh your table更多推荐
RxSwift重载tableview
发布评论