在我的项目中我使用RxSwift和Action来处理刷新指示器,但是在运行此代码时遇到了问题。当我调试订阅工作正常但没有显示refreshControl时,刷新控件没有显示。当我在外部self.refreshControl?.beginRefreshing()
块
if (executing == true) {
时会有所不同
self.viewModel.transactionHistoryNetworkRequestAction?.executing
.subscribeOn(MainScheduler.instance)
.subscribe(onNext: { (executing) in
if (executing == true) {
self.refreshControl?.beginRefreshing()
} else {
self.refreshControl?.endRefreshing()
}
})
.addDisposableTo(self.disposeBag)
感谢您的回答
答案 0 :(得分:0)
UIRefreshControll
有关
我重现了您的问题(刷新控件没有显示),在将此解决方案应用于下面的代码之后,现在一切正常。
import UIKit
import RxSwift
class ViewController: UIViewController {
let testObservable = PublishSubject<Bool>()
let disposeBag = DisposeBag()
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
Observable.just(true).delay(2, scheduler: MainScheduler.instance).subscribe(testObservable).disposed(by: disposeBag)
tableView.refreshControl = UIRefreshControl()
testObservable.observeOn(MainScheduler.instance).subscribe(onNext: { (executing) in
print("Executing: \(executing)")
self.tableView.refreshControl!.beginRefreshing()
self.tableView.setContentOffset(CGPoint(x: 0, y: -self.tableView.refreshControl!.frame.size.height), animated: true)
}).disposed(by: disposeBag)
}
}