用户执行快速滑动手势,使UICollectionView开始滚动(它将逐渐停止)。
我应该如何通过编程强制滚动立即停止? 澄清一下,我想允许减速,但需要能够在代码中停止它。
用户执行快速滑动手势,使UICollectionView开始滚动(它将逐渐停止)。
我应该如何通过编程强制滚动立即停止? 澄清一下,我想允许减速,但需要能够在代码中停止它。
你是否尝试过以下方法?
[self.collectionView setContentOffset:self.collectionView.contentOffset animated:NO];
contentOffset
属性会在collectionView滚动时(包括通过动画)不断更新,因此在调用上述方法时,希望它能强制停止collectionView的现有动画。
试试这个,对我有用。 :)
self.collectionView.scrollEnabled = NO;
对于Swift 3:
collectionView.isScrollEnabled = false
如果您将 pagingEnabled
和 scrollEnabled
属性设置为 true
,则应该可以正常工作:
self.collectionView.scrollEnabled = false
self.collectionView.pagingEnabled = false
scrollViewDelegate
方法,在用户松开拖动collectionView时进行拾取。-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset;
contentOffset
属性设置最终目标和速度,以达到最佳效果。self.collectionView.contentOffset = CGPointZero;
将内容偏移设置为起始位置,但它不会中止动画。它只是从0,0继续进行。 - Pétur Ingi Egilsson
`CGPoint offset = self.collectionView.contentOffset; (self.collectionView.contentOffset.y > 0) ? offset.y-- : offset.y++; [self.collectionView setContentOffset:offset animated:NO];`
- Pétur Ingi Egilsson