8

Sto avendo uno UICollectionView che contiene immagini come elementi nel suo archivio dati.rilevamento quando un UICollectionCell di iOS sta uscendo dallo schermo

Desidero caricare un'immagine ad alta risoluzione nell'elemento solo quando il suo corrispondente UICollectionViewCell viene visualizzato sullo schermo. Successivamente, quando lo schermo UICollectionViewCell si spegne, voglio restituire l'elemento UIImage nella versione a bassa risoluzione.

La mia domanda è, come posso rilevare quando uno UICollectionViewCell sta uscendo dallo schermo?

(Ho provato a utilizzare il metodo prepareForReuse ma non riesco a prevedere quando verrà chiamato).

Attualmente sto usando un pezzo di codice che si trova in scrollViewDidScroll e ogni volta che la vista scorre, sto verificando lo self.collectionView.visibleCells per vedere quali celle sono state sfogliate dallo schermo.

Sembra un po 'sovraccarico e mi chiedo se c'è un metodo chiamato sullo UICollectionViewCell stesso ogni volta che viene fatto scorrere sullo schermo?

risposta

24

Il metodo collectionView:didEndDisplayingCell:forItemAtIndexPath: su UICollectionViewDelegate dovrebbe fare ciò che si desidera.

+1

proprio quello che stavo cercando! Grazie mille –

+0

Grazie mille :) Questo è quello che stavo cercando :) – Srikanth

+3

Unico problema con questo metodo è che viene chiamato anche quando il 'collectionView' riceve un messaggio 'reloadData' – Mazyod

0

Da documentazione. CollectionView: didEndDisplayingCell è chiamata subito dopo finisce la visualizzazione, non quando si va fuori dallo schermo

Utilizzare questo metodo per rilevare quando una cellula viene rimosso da una visione di raccolta, in contrasto con il monitoraggio della vista stessa per vedere quando scompare

Problemi correlati