强制UICollectionView停止滚动

时间:2014-05-13 20:12:28

标签: ios objective-c uicollectionview

用户执行快速滑动手势以使UICollectionView开始滚动(它将逐渐停止)。

如何以编程方式强制滚动立即停止? 为了澄清,我想允许减速,但我需要能够在代码中停止它。

5 个答案:

答案 0 :(得分:29)

您是否尝试过以下操作?

[self.collectionView setContentOffset:self.collectionView.contentOffset animated:NO];

contentOffset属性会随着collectionView滚动(甚至通过动画)不断更新,因此在调用上述内容时,它应该强制使用collectionView来停止其现有动画。

答案 1 :(得分:29)

试试这个。为我工作。 :)

self.collectionView.scrollEnabled = NO;

答案 2 :(得分:7)

对于Swift 3:

collectionView.isScrollEnabled = false

答案 3 :(得分:3)

如果您将pagingEnabledscrollEnabled属性设置为true,则应该有效:

self.collectionView.scrollEnabled = false
self.collectionView.pagingEnabled = false

答案 4 :(得分:1)

当用户放下collectionView时,采用以下scrollViewDelegate方法来获取。

-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset;

然后,您可以创建自己的动画块,使用contentOffset属性设置您认为最佳的速度/最终目的地。