Sto cercando di memorizzare un indice per un oggetto (indexPath.item) in un UICollectionView e in un secondo momento, dopo che la vista è stata sostituita e quindi ripristinata, per scorrere fino a quell'elemento memorizzato.UICollectionView Scorrimento a un articolo
Quando si memorizza la voce, indexPath, e indexPath.item sono:
indexPath is: <NSIndexPath 0x1d87b380> 2 indexes [0, 32]
indexPath.item is: 32
Quando ricalcolare l'indexPath tardi per quella voce, indexPath, e indexPath.item sono:
indexPath is: <NSIndexPath 0x1d8877b0> 2 indexes [0, 32]
item is: 32
provo per scorrere fino alla posizione memorizzata utilizzando:
NSIndexPath *iPath = [NSIndexPath indexPathForItem:i inSection:0];
[self collectionView scrollToItemAtIndexPath:iPath atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];
Ho ricevuto un errore:
attempt to scroll to invalid index path
Stampa il percorso dell'indice che stai cercando di raggiungere nel messaggio di errore? Se lo fa, ed è, diciamo, '[sezione, riga]'. Prova a 'NSLog'' [self.collectionView numberOfItemsInSection: section]; e facci sapere – micantox
Grazie micantox. Il numero di stampa di ItemsInSection ha rivelato che la visualizzazione utilizzata per lo scorrimento era obsoleta. Quando ho usato lo scrollToItemAtIndexPath dopo aver aggiornato la vista, ha funzionato! – kzia
ti sei dimenticato di mettere un punto? e "[self.collectionView scroll ..." non "[self collectionView scroll ..." (si noti un punto tra self e collectionView)? Sembra che il messaggio di errore indichi esattamente questo problema – igrek