UICollectionView не отображает ячейки
На мой взгляд, у меня есть UITableView
, который содержит ячейки с горизонтальным UICollectionView
внутри. Проблема в том, что иногда UICollectionViewCell
не отображаются на устройстве/симуляторе. В то же время я вижу эти ячейки в отладчике представления иерархии:
Что я вижу в отладчике View Hierarchy:
![введите описание изображения здесь]()
Что я вижу на устройстве:
![введите описание изображения здесь]()
Как вы можете видеть, существуют ячейки (с изображениями) и имеют правильные кадры и контент (подтвержденный отладчиком представления иерархии). Тем не менее, они почему-то не отображаются на устройстве/симуляторе. Что может быть причиной этого и как я могу его исправить?
UPD: еще один пример с представлением "3D" и ошибкой в одной ячейке, но не на другом
снимок экрана устройства:
![введите описание изображения здесь]()
просмотр отладчика иерархии:
![введите описание изображения здесь]()
Ответы
Ответ 1
Оказалось, что моя конкретная проблема связана с ошибкой утверждения UICollectionView на устаревших данных, потому что иногда упоминается авария. Играя вокруг [collectionViewLayout invalidateLayout]
, я, наконец, исправил это.
Просто чтобы записать то, что НЕ было причиной (и что вы должны проверить, столкнувшись с той же проблемой):
- проверьте, обновляется ли только просмотр в основном потоке
- проверьте, правильно ли установлены все константы автоопределения и не конфликтуют.
- проверьте правильность расчета собственных размеров содержимого настраиваемых представлений.
Если ни одна из приведенных выше причин не вызывает попытку invalidateLayout
где-то вокруг reloadData
или внутри layoutSubviews
или аналогичного метода.