2016-06-02 6 views
0

У меня есть UITableView с содержимым ячеек переменной высоты. Если работает отлично для содержимого с автоопределением, но в моем случае содержимое загружается (привязано к пользовательскому интерфейсу) только при отображении ячейки (повторное использование, повторное использование и т. Д.), Поэтому единственный шанс, который я могу знать, реальная высота UITableViewCell составляет willDisplay моей таблицы dataSource ,UITableView и UITableViewCell с динамической высотой, которая известна только на WillDisplay

В этот момент я уже пропустил EstimatedHeight и GetHeightForRow Этапы.

Пожалуйста, посоветуйте, как я могу изменить UITableViewCell высоту на этапе WillDisplay

ответ

1

Если установить право AutoLayout, и клетку должна рассчитать свой собственный Hight, это не имеет значения, когда и ты изменишь свое содержание/высота контента, он будет знать, чтобы адаптироваться. Убедитесь, что верхняя часть содержимого ячейки имеет ограничение на верхнюю часть ячеек ContentView и то же самое для нижней.

Оцененный рейтинг, как говорится в названии, является лишь приблизительной оценкой. Это означает, что вы должны иметь некоторую реализацию, пытаясь вычислить высоту объекта модели dataSource, просто базовую реализацию.

Или вы можете запустить приложение один раз и посмотреть, сколько стоит высота ячейки после того, как она вычисляет высоту с помощью AutoLayout, но это намного меньше «динамическое».

Если клетка изменяет свою высоту после того, как его уже установлена, вы можете позвонить:

[tableView beginUpdates]; 
[tableView endUpdates]; 

И клетка будет пересчитывать себя, вместо того, чтобы перезагрузить отверстие Tableview.