检测何时到达tableview底部
如果不是底部return Observable.empty()
如果tableview位于底部return Observable.just(())
Observable.empty()
没有呼叫onNext
但是empty()
或just()
呼叫onNext
tableView.rx.contentOffset
.map {
self.isNearTheBottomEdge(contentOffset: $0, self.tableView) && self.postModel.isLoadingComplete.value
? Observable.just(())
: Observable.empty()
}
.throttle(3, scheduler: MainScheduler.instance)
.subscribe(onNext: {
print("reached bottom")
self.postModel.nextPage.onNext(())
},onCompleted: {
print("complete")
}
)
.disposed(by: disposeBag)
return Observable.empty()
处于调试状态,但始终为print("reached bottom")
答案 0 :(得分:1)
如果您不想让subscribe(onNext)
在Observable.empty()上被调用,只需将.map{}
更改为.flatMap{}
tableView.rx.contentOffset
.flatMap {
self.isNearTheBottomEdge(contentOffset: $0, self.tableView) && self.postModel.isLoadingComplete.value
? Observable.just(())
: Observable.empty()
}
Here,您可以了解map
与flatMap
之间的区别