我在我的应用程序中使用 scrollViewDidScroll 委托。
但是,很多时候,即使我开始滚动,这个委托也会被调用,这会产生很多问题。我听说即使设置了特定滚动视图的 contentSize ,那时scrollViewDidScroll
也会调用这个委托。
调用此委托的不同场景是什么。有哪些步骤可以控制这种情况?
我可以设置任何参数来处理这个吗?
我在我的应用程序中使用 scrollViewDidScroll 委托。
但是,很多时候,即使我开始滚动,这个委托也会被调用,这会产生很多问题。我听说即使设置了特定滚动视图的 contentSize ,那时scrollViewDidScroll
也会调用这个委托。
调用此委托的不同场景是什么。有哪些步骤可以控制这种情况?
我可以设置任何参数来处理这个吗?
为了防止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;
}
scrollViewDidScroll:每次滚动边界更改时都会调用。这意味着它在滚动期间以及开始时被调用。您可能想尝试使用 scrollViewWillBeginDragging: 代替。
嗨,伙计们,这是一个非常古老的问题,但是,如果您想知道scrollDidScroll
是手动触发(通过手指)还是由于其他事件(如didSelect
or )触发setContentOffset
,请使用该UIScrollView.isTracking
属性。
在此方法中设置 UICollectionView、UITableView 委托这里
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// This method is called only after all subviews are laid
}