Динамическая высота ячейки UITableView с AutoLayout с метками динамического типа
Я реализую ячейки моего табличного представления, используя AutoLayout, чтобы показать изображение и 2 метки, используя Dynamic Type для адаптивного размера шрифта.
Я реализовал оценочный HeightForRowAtIndexPath, который имеет смысл и прост в использовании.
Я неиспользовать построитель интерфейса для ячеек. Вместо этого я использую масонство, которое не должноне имеет значения. Я
м в настоящее время борется с расчетом фактической высоты ячейки. Вычислять его вручную сложно и сложно при обновлении кода автоматической разметки.
Я нашел этот ответ StackOverFlow:Использование Auto Layout в UITableView для динамического размещения ячеек и переменная высота строки Это решение должно также заботиться о разном размере шрифта, но нея не работаю
Когда у меня есть система AutoLayout, подобная этой: UILabel к верху contentView с отступом, другая UILabel к низу contentView с отступом, он должен автоматически вычислять высоту ячейки.
Но вместо этого это приводит к следующему конфликту AutoLayout:
UIView property translatesAutoresizingMaskIntoConstraints)
(
"",
"",
"",
"",
"",
""
)
Я использую следующий код AutoLayout:
[self.subtitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.titleLabel.mas_bottom);
make.right.equalTo(self.contentView.mas_right).with.offset(-GCBaconCellRowPadding);
make.left.equalTo(self.contentView.mas_left).with.offset(GCBaconCellRowPadding);
make.bottom.equalTo(self.contentView.mas_bottom);
}];
Последняя строка должна указывать, что высота ячейки увеличивается.
Глядя на вывод конфликта AutoLayout, похоже, что он хочет автоматически установить высоту 44.0, что является значением по умолчанию.
редактировать: Настройка contentView 's переводит AutoresizingMaskIntoConstraints в NO
self.contentView.translatesAutoresizingMaskIntoConstraints = NO;
при создании ячейки исправляет коллизию, но в результате высота строки равна нулю.