2013-03-24 28 views
5

numaralı numaralı bir yatay UICollectionViewFlowLayout kullanan bir UICollectionView var. Ayrıca benim UIStoryboard'da oluşturulmuş bir prototip hücre kullanıyorum. Özel bir sayfalama oluşturmak istiyorum, bu yüzden - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset kullanıyorum.Neden indexPathForItemAtPoint her zaman dön

Sorun, targetContentOffset'e (kaydırma görünümünde kaydırma görüntüsünün durduğu noktaya karşılık gelen) karşılık gelen indexPath kodunu almaya çalıştığım her seferinde, toplamanın açıkça koleksiyonun içinde olmasına rağmen koleksiyon görünümü sıfırlanır contentSize'i görüntüle.

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset 
{ 
    NSIndexPath *indexPath = [_collectionView indexPathForItemAtPoint:(*targetContentOffset)]; 
    // Do something with indexPath  
} 

Neyi yanlış yapıyorum?

+0

? '_collectionView''ün kendisinin sıfır olup olmadığını kontrol edin. – 7usam

+0

scrollView değişkeninin kendisini kullanmaya çalıştım ama sonuç aynı. Yöntemi aradığımda her ikisinin de sıfır olmadığına olumlu bakıyorum. – DrMonkey68

cevap

0

collectionView, targetContentOffset için indexPath işlevini henüz bilmiyor.

Bu konumda düzeni olacak öğenin özniteliğini vermek için collectionViewLayout öğesini sormanız gerekir. Böyle

deneyin şey: Neden ivar kullandığınız

UICollectionViewLayoutAttributes *attribute = [_collectionView.collectionViewLayout layoutAttributesForElementsInRect:(CGRect){(*targetContentOffset).x, 0, 10, self.collectionView.bounds.size.height}][0]; 
İlgili konular