Ios 强制UICollectionView停止滚动

Ios 强制UICollectionView停止滚动,ios,objective-c,uicollectionview,Ios,Objective C,Uicollectionview,用户执行快速滑动手势以使UICollectionView开始滚动(它将逐渐停止) 如何通过编程强制滚动立即停止? 为了澄清,我希望允许减速,但我需要能够在代码中停止减速。当用户放弃拖动collectionView时,采用以下scrollViewDelegate方法进行拾取 -(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(i

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

如何通过编程强制滚动立即停止?
为了澄清,我希望允许减速,但我需要能够在代码中停止减速。

当用户放弃拖动collectionView时,采用以下
scrollViewDelegate
方法进行拾取

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

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

您尝试过以下方法吗

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

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

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


如果将
paginEnabled
scrollEnabled
属性设置为
true
,则此操作应有效:

self.collectionView.scrollEnabled = false
self.collectionView.pagingEnabled = false
对于Swift 3:

collectionView.isScrollEnabled = false

这不符合我的设想。我需要能够在任何时候中断动画。哈哈,好的,然后随时设置contentOffset属性。它将强制它停止。
self.collectionView.contentOffset=CGPointZero将内容偏移设置为开始,但不会中止动画。它只是从0,0继续。您必须执行setContentOffSet:yourOffset动画:节点不起作用,需要更改y或x值。我使用了它,它可以工作:
CGPoint offset=self.collectionView.contentOffset;(self.collectionView.contentOffset.y>0)?offset.y-:offset.y++;[self.collectionView setContentOffset:offset动画:否]他们仍然可以点击项目滚动到它们:/
collectionView.isScrollEnabled = false