我需要跟踪tableView.contentOffset.y是否可以向tableView.contentOffset添加观察者?
我认为这是不可能的,因为contentOffset不会继承NSObject类。
还有其他解决方案吗?
答案 0 :(得分:22)
UITableView
是UIScrollView
子类,因此您可以使用UIScrollViewDelegate
方法scrollViewDidScroll:
在视图滚动时收到通知。检查该方法中contentOffset
的{{1}}
scrollView
是一个关键路径,因此您也可以使用KVO
contentOffset
答案 1 :(得分:1)
快捷键3
使用键值观察(KVO)为0
键路径添加观察者:
contentOffset
并处理更改通知:
tableView.addObserver(self, forKeyPath: #keyPath(UIScrollView.contentOffset), options: [.old, .new], context: nil)
答案 2 :(得分:0)
雨燕5
tableContentObserver = table.observe(\UITableView.contentOffset, options: .new) { [weak self] table, change in
self?.navigationItem.rightBarButtonItem?.title = "\(change.newValue)"
}