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

StackOverflow https://stackoverflow.com/questions/1408078

Вопрос

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

Их содержание создано с помощью подпредставлений.

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

Одним из примеров является пользовательская ячейка, которая имеет настраиваемое подпредставление, которое можно установить после его создания. Это представление вообще не отображается до того, как я выбрал ячейку, и ее представления были перерисованы. Вызов - [setNeedsDisplay] в методе установки подпредставления также не помогает.

Это было полезно?

Решение

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

Поэтому мой совет: никогда не используйте UITableViewCell для вычисления собственной высоты. Это может работать в принципе (это не приводит к сбою), но может укусить вас позже необнаруженными и сложными для отладки способами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top