iPhone - Пользовательская высота TableViewCell рассчитывается от текста ячейки - PullRequest
2 голосов
/ 23 апреля 2011

Я создаю собственную ячейку в функции cellForRowAtIndex и заполняю ее динамическим текстом. Высота ячейки зависит от этого текста, поэтому мне нужно использовать функцию heightForRowAt, но в этой функции у меня нет ячейки. Я могу создать новый и заполнить его текстом, а затем вызвать для него мою функцию Calculay, но затем я создаю 2 ячейки для каждой строки.

У кого-нибудь есть лучший метод? Кэшировать ячейки самостоятельно в функции cellForRow в словаре по индексу строки и использовать это? Вызывается ли cellForRow перед heightForRow?

Мне уже дважды удалось разбить Xcode4, играя с этим, так что я надеюсь, что кто-то уже сделал это.

Ответы [ 2 ]

1 голос
/ 23 апреля 2011

Что вы делаете, вы делаете метод класса в вашей пользовательской ячейке (например), который знает значения того, как вещи (вещи статического размера) будут установлены, и выполняет некоторые математические операции, чтобы определить с учетом смещений текстового представлениянапример, он может сказать вам, насколько большой должна быть ячейка после вычисления того, как высоко вашей строке будет присвоен шрифт.

1 голос
/ 23 апреля 2011
tableView:heightForRowAtIndexPath:

вызывается раньше

tableView:cellForRowAtIndexPath:

Возможно создание двух ячеек, но создание двух ячеек не очень эффективный метод.Однако вам не нужна ячейка для расчета высоты;Все, что вам нужно, это строка.

Возможно, вы захотите использовать

sizeWithFont:constrainedToSize:

в вашей строке для вычисления высоты.

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

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