UICollectionView:滚动到顶部并在滚动完成时执行操作

时间:2018-02-12 16:44:58

标签: ios swift scroll uicollectionview

我将我的集合视图滚动到顶部,并希望在滚动完成后执行操作。有没有办法轻松实现这一目标?

滚动到顶部可以使用

完成
  • setContentOffset(CGPoint(x: 0, y: 0))
  • scrollRectToVisible
  • scrollToItem(at: IndexPath, at: .top)

不幸的是,这些函数都不会占用completion块,如果我使用animated = false参数,我可以将其嵌入UIView.animate()调用并使用其完成块 - 但随后集合视图将在滚动期间重用/甚至不显示集合视图单元格。

有没有办法在滚动完成时做一些事情,除了设置一个定时器在一定时间后击中或用旗帜做一些奇怪的魔法& scrollViewDidScroll委托函数?

1 个答案:

答案 0 :(得分:2)

UICollectionView确认UIScrollViewDelegate。使用此委托功能:

public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
{
     if collectionView.contentOffset.y == 0
     {
          // perform your action
     }
} 

滚动停止时将调用此方法。