scrollViewDidScroll委托自动调用

时间:2012-07-25 18:16:30

标签: iphone ios xcode uiscrollview uiscrollviewdelegate

我在我的应用程序中使用scrollViewDidScroll委托。

但是,很多时候,即使我开始滚动,这个委托也会被调用,这会产生很多问题。我听说即使设置了特定滚动视图的contentSize,那么此时也会调用此委托,即scrollViewDidScroll

调用此委托的不同方案有哪些。控制它的步骤是什么?

我可以设置任何参数来处理这个吗?

5 个答案:

答案 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)

relevant

  

scrollViewDidScroll:每次滚动边界更改时都会调用它。   这意味着它在滚动期间以及在滚动时被调用   开始。您可能想要尝试scrollViewWillBeginDragging:而不是。

答案 2 :(得分:3)

当方向发生变化时,也会调用scrollViewDidScroll。这是我从here得知的。这是我面临的问题。现在我的问题通过this帖子解决了。

答案 3 :(得分:0)

在此方法中设置UICollectionView,UITableView委托

override func viewDidLayoutSubviews() {
     super.viewDidLayoutSubviews()
     // This method is called only after all subviews are laid
}

答案 4 :(得分:0)

嗨,大家好,这是一个非常老的问题,但是,如果您想知道scrollDidScroll是手动(通过手指)触发还是由于其他事件(例如didSelectsetContentOffset)触发,请使用UIScrollView.isTracking属性。