我将我的集合视图滚动到顶部,并希望在滚动完成后执行操作。有没有办法轻松实现这一目标?
滚动到顶部可以使用
完成setContentOffset(CGPoint(x: 0, y: 0))
scrollRectToVisible
scrollToItem(at: IndexPath, at: .top)
不幸的是,这些函数都不会占用completion
块,如果我使用animated = false
参数,我可以将其嵌入UIView.animate()
调用并使用其完成块 - 但随后集合视图将在滚动期间重用/甚至不显示集合视图单元格。
有没有办法在滚动完成时做一些事情,除了设置一个定时器在一定时间后击中或用旗帜做一些奇怪的魔法& scrollViewDidScroll
委托函数?
答案 0 :(得分:2)
自UICollectionView
确认UIScrollViewDelegate
。使用此委托功能:
public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
{
if collectionView.contentOffset.y == 0
{
// perform your action
}
}
滚动停止时将调用此方法。