UIScrollView+Rx.swift 612 B

123456789101112131415161718192021222324
  1. //
  2. // UIScrollView+Rx.swift
  3. // SwiftBilibili
  4. //
  5. // Created by 罗文 on 2021/1/13.
  6. // Copyright © 2021年 罗文. All rights reserved.
  7. //
  8. import RxCocoa
  9. import RxSwift
  10. extension Reactive where Base: UIScrollView {
  11. var isReachedBottom: ControlEvent<Void> {
  12. let source = self.contentOffset
  13. .filter { [weak base = self.base] offset in
  14. guard let base = base else { return false }
  15. return base.isReachedBottom(withTolerance: base.frame.height * 0.7)
  16. }
  17. .map { _ in Void() }
  18. return ControlEvent(events: source)
  19. }
  20. }