2014-05-13 17 views

cevap

20

Aşağıdakileri denediniz mi?

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

contentOffset mülkiyet

sürekli yukarıda arayarak anında böylece, bu umutla mevcut animasyonu durdurmak için CollectionView'ın zorlamak gerekir (hatta animasyon yoluyla) CollectionView'ın kaydırma yaparken güncellenir.

+2

Çalışmıyor, y veya x değerinin değiştirilmesi gerekiyor. Bunu kullandım ve şu işe yarar: 'CGPoint offset = self.collectionView.contentOffset; (self.collectionView.contentOffset.y> 0)? offset.y--: offset.y ++; [self.collectionView setContentOffset: offset animasyonlu: NO]; ' –

1

Kullanıcı koleksiyonView'ı sürüklemeye izin verdiğinde almak için aşağıdaki scrollViewDelegate yöntemini benimseyin.

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

Daha sonra sadece contentOffset özelliğini kullanarak en iyi görünüyor düşünüyorum hangisi hız/son hedef ayarlamak için kendi animasyon bloğu oluşturabilir.

+0

Bu irade senaryona uymuyor. Animasyonu istediğiniz zaman kesmem gerekiyor. –

+1

Haha tamam, o zaman contentOffset özelliğini istediğiniz zaman ayarlayın. Durdurmaya zorlar. –

+0

'self.collectionView.contentOffset = CGPointZero;' içerik ofseti başlangıcına ayarlar, ancak animasyonu iptal etmez. Sadece 0,0'dan devam ediyor. –

25

Bunu deneyin. Benim için çalıştı. :)

self.collectionView.scrollEnabled = NO; 
+0

Onlara kaydırmak için öğelere dokunabilirler: / –

0

çalışması gerektiğini "pagingEnabled" ve bundan "true" set "scrollEnabled" özelliklere sahipseniz:

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

Swift 3 için:

collectionView.isScrollEnabled = false