Как получить доступ к объекту UICollectionViewCell, который еще не виден? - PullRequest
0 голосов
/ 19 апреля 2020

Предполагается, что мой UICollectionViewCell изменит свой внешний вид при появлении на экране (просто простое изменение альфа / непрозрачности в одном из подпредставлений). Мой код работает нормально, когда я медленно прокручиваю (по вертикали), но моя попытка доступа к ячейке (используя cellForItemAt) возвращает ноль, когда я выполняю прокрутку очень быстро. Отладка + исследование показывает, что cellForItem возвращает nil, когда объект ячейки еще не виден (даже если объект создан), что и происходит, когда я быстро прокручиваю.

Какой лучший способ получить доступ к объекту ячейки, когда он еще не виден?

1 Ответ

2 голосов
/ 20 апреля 2020

Из вашего описания я бы сказал, что идеальный способ доступа к этим ячейкам - это функция collectionView:willDisplayCell:forItemAtIndexPath: Эта функция сообщает вам, что указанная ячейка вот-вот будет отображаться в представлении коллекции.

Итак Вы можете использовать это так:

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    guard let cell = cell as? YourCell else { return }
    // change alpha etc...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...