2016-04-14 17 views
1

Bu yöntemi arıyorum ve nextCellIndexPath geçerli hücreden daha büyük bir indexPath, ancak indexPath düzgün artırılmıyor.Bir UICollectionView NSIndexPath nasıl artırılır

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("collectionViewCell", forIndexPath: indexPath) as! ImageCollectionViewCell 
    cell.nextCellIndexPath = indexPath.indexPathByAddingIndex(1) 
    return cell 
} 

sonraki indexPath gitmek için deneyin, indexPath artırmaz olduğunu görüntülenir: Burada

cellForItemAtIndexPath olduğunu.

Peki, sonraki indexPath'ı nasıl doğru şekilde alabilirim?

+0

gibi yeni NSIndexPath kullanarak bir şey oluşturmayı deneyin? – Dash

+0

Doğru. Muhtemelen yeniden adlandırmalıyım. –

+0

Kaydırmayı çağırdığınızda, öğe ekranda zaten görünüyor mu? Sadece öğe tam olarak görünmüyorsa kayar. – Dash

cevap

3

Bu kod: indexPath.indexPathByAddingIndex(1) beklediğiniz şeyleri yapmıyor. Bu indexPath'e bir dizin ekleyecektir, sonraki satıra geçmeyecektir.

bu doğru, bir `NSIndexPath` örneği değil, bir hücre olmayı` nextCell` atama anlaşılıyor bu

let nextIndexPath:NSIndexPath = NSIndexPath(forRow: indexPath.row + 1, inSection: indexPath.section) 
1

Bu kod, dequeue yeniden kullanılabilir konsepti açısından tehlikeli görünüyor. indexPath nesnesini yeniden kullanılabilir hücrenin özelliğine atarsınız, emin olamazsınız, bu indexPath, rightBumperTapped yönteminden erişmeye çalıştığınızda hücre için geçerli olur.