обнаружение, когда iOS UICollectionCell уходит с экрана


У меня есть UICollectionView, который хранит изображения в качестве элементов в своем хранилище данных.

Я хочу загрузить изображение высокого разрешения в элемент только тогда, когда его соответствующий UICollectionViewCell в данный момент отображается на экране. Позже, когда UICollectionViewCell исчезнет с экрана, я хочу вернуть элемент UIImage в версию с низким разрешением.

Мой вопрос в том, как я могу определить, когда UICollectionViewCell уходит с экрана?

(я пытался использовать метод prepareForReuse, но я не могу предсказать, когда это будет называемый).

В настоящее время я использую фрагмент кода, который находится в scrollViewDidScroll, и каждый раз, когда прокручивается представление, я проверяю self.collectionView.visibleCells, чтобы увидеть, какие ячейки прокрутились вне экрана.

Это кажется немного накладными расходами, и мне интересно, есть ли метод, вызываемый на самом UICollectionViewCell всякий раз, когда он прокручивается экрана ?

2 9

2 ответа:

collectionView:didEndDisplayingCell:forItemAtIndexPath: метод on UICollectionViewDelegate должен делать то, что вы хотите.

Из Документации. collectionView: didEndDisplayingCell вызывается сразу после завершения отображения, а не когда он уходит с экрана

Используйте этот метод, чтобы определить, когда ячейка удаляется из представления коллекции, в отличие от мониторинга самого представления, чтобы увидеть, когда она исчезает