Динамическая высота ячейки UITableView с AutoLayout с метками динамического типа

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

Я реализовал смету HeightForRowAtIndexPath, которая имеет смысл и проста в использовании.

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

В настоящее время я борюсь с расчетом фактической высоты ячейки. Вычислять его вручную сложно и сложно при обновлении кода автоматической разметки.

Я нашел этот ответ StackOverFlow:Использование Auto Layout в UITableView для динамического размещения ячеек и переменной высоты строк Это решение должно также заботиться о различных размерах шрифта, но не работает для меня.

Когда у меня есть система AutoLayout, подобная этой: UILabel к верху contentView с отступом, другая UILabel к низу contentView с отступом, он должен автоматически вычислять высоту ячейки.

Но вместо этого это приводит к следующему конфликту AutoLayout:

UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<MASLayoutConstraint:0xc506be0 UIImageView:0xc5070a0.height == 150>",
    "<MASLayoutConstraint:0xc506d90 UIImageView:0xc5070a0.top == UITableViewCellContentView:0xc5076e0.top + 10>",
    "<MASLayoutConstraint:0xc506990 UILabel:0xc507450.top == UIImageView:0xc5070a0.bottom + 10>",
    "<MASLayoutConstraint:0xc506630 UILabel:0xc507260.top == UILabel:0xc507450.bottom>",
    "<MASLayoutConstraint:0xc506530 UILabel:0xc507260.bottom == UITableViewCellContentView:0xc5076e0.bottom>",
    "<NSAutoresizingMaskLayoutConstraint:0xc3d05a0 UITableViewCellContentView:0xc5076e0.height == 44>"
)

Я использую следующий код 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 translationsAutoresizingMaskIntoConstraints значения NO

self.contentView.translatesAutoresizingMaskIntoConstraints = NO;

при создании ячейки исправляет коллизию, но в результате высота строки равна нулю.

Ответы на вопрос(1)

Ваш ответ на вопрос