【发布时间】:2019-07-14 10:15:26
【问题描述】:
我在使用 RxCocoa 观察 UITableView 的 contentOffset 属性时遇到问题。
我试过 RxCocoa 属性:
view.tableView.rx.contentOffset
.mapAt(\.y)
.subscribe(onNext: { print($0) })
在控制台中我只看到 (0, 0) 一次,没有别的。
我尝试用 RxCocoa 中的代码替换它:
ControlProperty(
values: BehaviorSubject<CGPoint>(value: RxScrollViewDelegateProxy.proxy(for: view.tableView).scrollView?.contentOffset ?? CGPoint.zero),
valueSink: Binder(view.tableView) { scrollView, contentOffset in
scrollView.contentOffset = contentOffset
}
)
.subscribe(onNext: { print("myOffset", $0) })
得到了相同的结果:myOffset (0, 0) 一次,没有别的。
我试图观察其他财产,但没有得到任何东西:
view.tableView.rx.didScroll
.subscribe(onNext: { print(view.tableView.contentOffset) })
但是。我尝试添加 Observable 间隔:
Observable<Int>.interval(1, scheduler: MainScheduler.instance)
.subscribe(onNext: { _ in print(view.tableView.contentOffset) })
每一秒我都有不同的分数:(0, 0), (0, 38), (0, 64)。
我正在使用: RxCocoa (5.0.0); RxSwift (5.0.0)
【问题讨论】:
标签: ios swift uitableview rx-swift rx-cocoa