UICollectionView не отображает ячейки

На мой взгляд, у меня есть UITableView, который содержит ячейки с горизонтальным UICollectionView внутри. Проблема в том, что иногда UICollectionViewCell не отображаются на устройстве/симуляторе. В то же время я вижу эти ячейки в отладчике представления иерархии:

Что я вижу в отладчике View Hierarchy: введите описание изображения здесь

Что я вижу на устройстве: введите описание изображения здесь

Как вы можете видеть, существуют ячейки (с изображениями) и имеют правильные кадры и контент (подтвержденный отладчиком представления иерархии). Тем не менее, они почему-то не отображаются на устройстве/симуляторе. Что может быть причиной этого и как я могу его исправить?

UPD: еще один пример с представлением "3D" и ошибкой в ​​одной ячейке, но не на другом

снимок экрана устройства: введите описание изображения здесь

просмотр отладчика иерархии: введите описание изображения здесь

Ответ 1

Оказалось, что моя конкретная проблема связана с ошибкой утверждения UICollectionView на устаревших данных, потому что иногда упоминается авария. Играя вокруг [collectionViewLayout invalidateLayout], я, наконец, исправил это.

Просто чтобы записать то, что НЕ было причиной (и что вы должны проверить, столкнувшись с той же проблемой):

  • проверьте, обновляется ли только просмотр в основном потоке
  • проверьте, правильно ли установлены все константы автоопределения и не конфликтуют.
  • проверьте правильность расчета собственных размеров содержимого настраиваемых представлений.

Если ни одна из приведенных выше причин не вызывает попытку invalidateLayout где-то вокруг reloadData или внутри layoutSubviews или аналогичного метода.