8

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

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

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

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

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

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

ответ

24

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

+1

только то, что я искал! thanx –

+0

Большое вам спасибо :) Это то, что я искал :) – Srikanth

+3

Только проблема с этим методом заключается в том, что он также вызывается, когда «collectionView» получает сообщение «reloadData» – Mazyod

0

Из документации. CollectionView: didEndDisplayingCell вызывается сразу после того, как он закончит показ, не тогда, когда она гаснет экран

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

Смежные вопросы