Изменить высоту UITableViewCell в cellForRowAtIndexPath - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть UITableView с UITableViewCells, которые заполнены методом cellForRowAtIndexPath с UILabels и т. Д. Я хотел бы изменить высоту UITableViewCell после того, как я добавил UILabels в ячейку. Как я могу это сделать? Я много читал об этом в методе heightForRowAtIndexPath, но этот метод вызывается раньше cellForRowAtIndexPath, поэтому новая пользовательская высота неизвестна при вызове heightForRowAtIndexPath.

Так как я могу установить высоту моего UITableViewCell в методе cellForRowAtIndexPath?

Заранее спасибо, потратил на это много времени.

Ответы [ 3 ]

7 голосов
/ 10 февраля 2012

вы не можете изменить высоту в cellForRowAtIndexPath.TableView должен знать высоту, прежде чем он отобразит весь tableView.Вот почему tableView:heightForRowAtIndexPath: вызывается для каждой ячейки, имеющейся в вашем tableView.
Это, например, необходимо для вычисления размера scrollView, в котором находятся ячейки.

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

Используйте те же части кода, которые определяют высоту ячейки в cellForRowAtIndexPath: и поместите их в heightForRowAtIndexPath:
Оптимизация важна для heightForRowAtIndexPath, поскольку она вызывается для каждой ячейки.Поэтому убедитесь, что вы выполняете только минимальный объем работы, необходимый для расчета высоты.

2 голосов
/ 16 февраля 2012

Я могу изменить contentView UITableViewCell, который отлично работает :) Если я изменю эту высоту в моей функции cellForRowAtIndexPath и сразу вызову [tableView beginUpdates], она хорошо изменится.

0 голосов
/ 10 февраля 2012

Как насчет принудительного дополнительного вызова heightForRowAtIndexPath внутри cellForRowAtIndexPath, если высота ячейки не та, которую вы хотите?

Вам просто нужно избегать бесконечного цикла:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...