Ich habe ein UICollectionView
, das Bilder als Elemente in seinem Datenspeicher enthält.
Ich möchte ein Bild mit hoher Auflösung nur dann in das Element laden, wenn sein entsprechendes UICollectionViewCell
gerade auf dem Bildschirm angezeigt wird. Später, wenn der UICollectionViewCell
Bildschirm ausgeht, möchte ich das UIImage
des Elements in die Version mit niedriger Auflösung zurückgeben.
Meine Frage ist, wie kann ich erkennen, wenn ein UICollectionViewCell
Bildschirm ausgeht?
(Ich habe versucht, die Methode prepareForReuse
zu verwenden, kann aber nicht vorhersagen, wann sie aufgerufen wird).
Ich verwende derzeit einen Code, der in scrollViewDidScroll
steht, und jedes Mal, wenn die Ansicht scrollt, überprüfe ich die self.collectionView.visibleCells
, um zu sehen, welche Zellen vom Bildschirm gescrollt wurden.
Es scheint ein bisschen Overhead zu sein, und ich frage mich, ob es eine Methode gibt, die UICollectionViewCell
selbst aufgerufen wird, wenn es vom Bildschirm gescrollt wird?
Die collectionView:didEndDisplayingCell:forItemAtIndexPath:
Methode für UICollectionViewDelegate
sollte tun, was Sie wollen.
Aus der Dokumentation. collectionView: didEndDisplayingCell wird direkt nach der Anzeige aufgerufen, nicht beim Ausschalten des Bildschirms
Verwenden Sie diese Methode, um zu erkennen, wenn eine Zelle aus einer Sammlungsansicht entfernt wird, anstatt die Ansicht selbst zu überwachen, um zu sehen, wann sie verschwindet
Tags und Links ios uicollectionview uicollectionviewcell uicollectionreusableview