Выровнять текст по UILabel по вертикали с ограничениями и без переноса (автоматическая разметка, одна строка)

Итак, у меня есть настройки вида в IB, так что эта текстовая метка выравнивается с верхом миниатюры с помощью ограничений.

Однако, как мы знаем, вы не можете выровнять текст по вертикали в UILabel. Мой текст обновляет размер шрифта в зависимости от длины содержимого. Полноразмерный текст выглядит великолепно, в то время как мелкий текст значительно меньше по виду.

существующее решение включает в себя либо вызов sizeToFit, либо обновление фрейма uilabel в соответствии с высотой текста. К сожалению, последнее (хотя и некрасивое) решение не очень хорошо работает с ограничениями, когда вы не должны обновлять фрейм. Прежнее решение в основном не работает, когда вам нужно иметь автоматическое сжатие текста, пока оно не будет усечено. (Так что он не работает с ограниченным количеством строк и автоусадкой).

Теперь о том, почему внутренний размер (высота) uilabel не обновляется так, как ширина, когда он установлен на свой естественный размер через «Размер, чтобы соответствовать содержимому», мне не подходит. Похоже, что это определенно должно, но это не так.

Поэтому я остался в поиске альтернативных решений. Насколько я вижу, вам, возможно, придется установить ограничение высоты для метки и отрегулировать постоянную высоты после вычисления высоты текста. У кого-нибудь есть хорошее решение?

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

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