iOS/RxSwift
[RxSwift] Rx를 이용한 페이징처리
최지철
2024. 6. 25. 09:07
728x90
반응형
RxSwift를 이용해서 조금 더 리엑티브하게 페이징 처리를 해보았습니다.
extension Reactive where Base: UIScrollView {
var reachedBottom: Observable<Void> {
return contentOffset
.flatMap { [weak base] contentOffset -> Observable<Void> in
guard let scrollView = base else { return Observable.empty() }
let visibleHeight = scrollView.frame.height - scrollView.contentInset.top - scrollView.contentInset.bottom
let y = contentOffset.y + scrollView.contentInset.top
let threshold = max(0.0, scrollView.contentSize.height - visibleHeight)
return y > threshold ? Observable.just(()) : Observable.empty()
}
}
}
let loadNextPageTrigger: tableView.rx.reachedBottom.asObservable()
728x90
반응형