Требуется доступ к ячейке в tableView: heightForRowAtIndexPath: - PullRequest
2 голосов
/ 22 января 2010

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

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

Так что мне интересно, есть ли более эффективный способ сделать это? Спасибо за помощь.

Ответы [ 2 ]

6 голосов
/ 22 января 2010

У вас нет доступа к ячейке в этом методе, потому что она еще не существует. tableView:heightForRowAtIndexPath: вызывается перед созданием ячейки в tableView:cellForRowAtIndexPath:.

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

0 голосов
/ 22 января 2010

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

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