обнаружение, когда iOS UICollectionCell уходит с экрана
У меня есть UICollectionView
, который хранит изображения в качестве элементов в своем хранилище данных.
Я хочу загрузить изображение высокого разрешения в элемент только тогда, когда его соответствующий UICollectionViewCell
в данный момент отображается на экране. Позже, когда UICollectionViewCell
исчезнет с экрана, я хочу вернуть элемент UIImage
в версию с низким разрешением.
UICollectionViewCell
уходит с экрана?
(я пытался использовать метод prepareForReuse
, но я не могу предсказать, когда это будет называемый).
В настоящее время я использую фрагмент кода, который находится в scrollViewDidScroll
, и каждый раз, когда прокручивается представление, я проверяю self.collectionView.visibleCells
, чтобы увидеть, какие ячейки прокрутились вне экрана.
Это кажется немного накладными расходами, и мне интересно, есть ли метод, вызываемый на самом UICollectionViewCell
всякий раз, когда он прокручивается экрана ?
2 ответа:
collectionView:didEndDisplayingCell:forItemAtIndexPath:
метод onUICollectionViewDelegate
должен делать то, что вы хотите.
Из Документации. collectionView: didEndDisplayingCell вызывается сразу после завершения отображения, а не когда он уходит с экрана
Используйте этот метод, чтобы определить, когда ячейка удаляется из представления коллекции, в отличие от мониторинга самого представления, чтобы увидеть, когда она исчезает