Стандартный UITableViewCell с динамической высотой

Я хочу знать, возможно ли иметь стандартный UITableViewCell со стилем UITableViewCellStyleSubtitle с динамической высотой?

Если да, то как это достичь?

  • Я не хочу настраивать и создавать новый класс и nib для ячейки.
  • Я установил свойство numberOfLines cell.textLabel и cell.detailTextLabel в 0.

Хорошо, если ваш textLabel содержит несколько строк контента и detailTextLabel содержит однострочное содержимое, тогда tableView автоматически настраивает высоту ячейки. Но если это наоборот, тогда это не так! Это ошибка Apple? или ожидаемые функциональные возможности?

Ниже приведены снимки экрана

enter image description hereenter image description here

Ответ 1

вы можете получить общие строки, необходимые для этой метки с заданной строкой

- (int)lineCountForLabel:(UILabel *)label {
    CGSize size = [label.text sizeWithFont:label.font      constrainedToSize:label.frame.size lineBreakMode:UILineBreakModeWordWrap];

    return ceil(size.height / label.font.lineHeight);
}

то просто умножьте totalNumberOfLines с высотой для строки и верните это число в HeightForRowAtIndexPath.