用戶執行快速輕掃手勢以使UICollectionView開始滾動(它將逐漸停止)。強制UICollectionView停止滾動
如何以編程方式強制滾動立即停止? 爲了澄清,我想允許減速,但我需要能夠在代碼中停止它。
用戶執行快速輕掃手勢以使UICollectionView開始滾動(它將逐漸停止)。強制UICollectionView停止滾動
如何以編程方式強制滾動立即停止? 爲了澄清,我想允許減速,但我需要能夠在代碼中停止它。
您是否嘗試過以下方法?
[self.collectionView setContentOffset:self.collectionView.contentOffset animated:NO];
的contentOffset
屬性被不斷更新的滾動的CollectionView(甚至通過動畫),所以在調用上面的時候,它應該有希望強制的CollectionView停止其現有動畫。
當用戶放開拖動collectionView時,採用以下scrollViewDelegate
方法取出。
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset;
然後,您可以只創建自己的動畫塊來設定爲準速度/最終目的地你認爲最好看使用contentOffset
財產。
這將不適合我的場景。我需要能夠隨時中斷動畫。 –
哈哈好吧,然後只需在任何時候設置contentOffset屬性。它會迫使它停止。 –
'self.collectionView.contentOffset = CGPointZero;'將內容偏移設置爲開頭,但不會中止動畫。它只是從0,0開始。 –
試試這個。爲我工作。 :)
self.collectionView.scrollEnabled = NO;
他們仍然可以點擊項目以滾動到他們:/ –
如果你有 「pagingEnabled」 和 「scrollEnabled」 屬性設置爲 「真」 比這應該工作:
self.collectionView.scrollEnabled = false
self.collectionView.pagingEnabled = false
對於斯威夫特3:
collectionView.isScrollEnabled = false
無法使用,需要更改y或x值。 我用這個,它的工作原理: 'CGPoint offset = self.collectionView.contentOffset; (self.collectionView.contentOffset.y> 0)? offset.y--:offset.y ++; [self.collectionView setContentOffset:offset animated:NO];' –