我在我的应用程序中使用scrollViewDidScroll委托。
但是,很多时候,即使我开始滚动,这个委托也会被调用,这会产生很多问题。我听说即使设置了特定滚动视图的contentSize,那么此时也会调用此委托,即scrollViewDidScroll
。
调用此委托的不同方案有哪些。控制它的步骤是什么?
我可以设置任何参数来处理这个吗?
答案 0 :(得分:7)
为了防止在加载和调整视图时自动触发scrollDidScroll:
,我等待添加UIScrollView
delegate
,直到所有视图都使用viewDidLayoutSubviews
加载。它对我很有用。
- (void)viewDidLayoutSubviews {
// add table view delegate after the views have been laid out to prevent scrollViewDidScroll
// from firing automaticly when the view is adjusted on load, which makes the tab bar disappear
self.tableView.delegate = self;
}
答案 1 :(得分:5)
scrollViewDidScroll:每次滚动边界更改时都会调用它。 这意味着它在滚动期间以及在滚动时被调用 开始。您可能想要尝试scrollViewWillBeginDragging:而不是。
答案 2 :(得分:3)
答案 3 :(得分:0)
在此方法中设置UICollectionView,UITableView委托
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// This method is called only after all subviews are laid
}
答案 4 :(得分:0)
嗨,大家好,这是一个非常老的问题,但是,如果您想知道scrollDidScroll
是手动(通过手指)触发还是由于其他事件(例如didSelect
或setContentOffset
)触发,请使用UIScrollView.isTracking
属性。