как угодно) › Тривиальный интерфейс var attributedText: NSAttributedString? { get set } › Self-sizing поведение как у UILabel › Работать везде, где работает UILabel › Не требовать написания дополнительного кода AttributedStringLabel - ASLabel 8
нам targetSize! › Определим systemLayoutSizeFitting у UITableViewCell › Прокинем targetSize в контент ячейки › Используем его при расчете intrinsicContentSize systemLayoutSizeFitting(_:)
момент расчета intrinsicContentSize ASLabel: › второй layout-pass благодаря invalidateIntrinsicContentSize в layoutSubviews › targetSize из systemLayoutSizeFitting UILabel:
è Нужен как минимум один layout-pass Предположение Делаем еще один layout-pass с верным intrinsicContentSize è Задачу можно решить минимум за 2 прохода лейаута Зная опорную ширину расчитываем intrinsicContentSize
у UILabel - да! ▌ Система явно подсказывает bounds для расчета IntrinsicContentSize ▌ Предположение про два прохода подтверждается @objc func _prepareForSecondIntrinsicContentSizeCalculation( withLayoutEngineBounds bounds: CGRect)