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