是否可以将观察者添加到tableView.contentOffset?

时间:2012-08-23 08:41:00

标签: ios uitableview observer-pattern

我需要跟踪tableView.contentOffset.y是否可以向tableView.contentOffset添加观察者?

我认为这是不可能的,因为contentOffset不会继承NSObject类。

还有其他解决方案吗?

3 个答案:

答案 0 :(得分:22)

UITableViewUIScrollView子类,因此您可以使用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)"
}