У меня есть следующие настройки: UITableView с пользовательской реализацией UITableViewCell.В каждой ячейке у меня есть UILabel и UIButton.Когда таблица впервые отображается, в каждой из ячеек UILabel имеет число строк, равное 1, и все ячейки имеют фиксированную высоту (в моем случае 60 пикселей).При нажатии кнопки в ячейке число строк UILabel устанавливается в 0 и включается перенос слов, что эффективно расширяет ячейку таблицы.
Теперь проблема заключается в том, что только реализация UITableViewCell знаетрасширена ли метка или нет - и, следовательно, какой должна быть высота ячейки.Однако файл владельца - это источник данных таблицы.
Я не могу получить, может разобраться, как это настроить.Любые идеи приветствуются.
Обновление Вот выдержки из моего кода
В пользовательской реализации UITableViewCell:
- (float)requiredHeight
{
if(isFull)
{
CGSize labelSize = [LblTitle.text sizeWithFont: [LblContent font]
constrainedToSize: CGSizeMake(300.0f, 300.0f)
lineBreakMode: UILineBreakModeTailTruncation];
return 42.0f + labelSize.height;
}
else
{
return 60.0f;
}
}
В файле владельца (UITableViewDelegate)):
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
OOCommentCell *cell = (OOCommentCell*)[tableView cellForRowAtIndexPath:indexPath];
return [cell requiredHeight];
}
Однако это приводит к случайным результатам в бесконечном цикле или в BAD_ACCESS_EXCEPTION.