Возможно ли теперь иметь многострочную UILabel с AdjusttsFontSizeToFitWidth? - PullRequest
0 голосов
/ 26 октября 2019

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

AdjusttsFontSizeToFitWidth "действует только в том случае, если для свойства numberOfLines установлено значение 1".

Iпомните, что это было написано в официальной документации . Но теперь я больше не могу его найти

Я тестировал свой код на Xcode11 с помощью инспектора специальных возможностей, чтобы найти метки, которые нужно было встроить в представления прокрутки. Я обнаружил метку, которая показывала поведение AdjusttsFontSizeToFitWidth, даже если он отображал многострочный текст. Я проверил «проблему» и обнаружил, что у меня была такая конфигурация:

Dynamic font type, numberOfLines 0, adjustsFontSizeToFitWidth, lineBreakMode NSLineBreakByTruncatingTail

При этой конфигурации используется максимальный размер шрифта наинспектор доступности У меня нет этого ожидаемого результата (1): Standard multiline UILabel with adjustsFontSizeToFitWidth not working

Но у меня вместо этого есть (2): A multiline UILabel with adjustsFontSizeToFitWidth perfectly working

Можно вернуться к ожидаемому результату, изменив lineBreakMode с NSLineBreakByTruncatingTail на NSLineBreakByWordWrapping (стандартная настройка, которую я использовал в своем проекте)

Я что-то упустил? Был ли я неправ в ожидании (1) от многострочной метки с фиксированной шириной и высотой, а для параметра corretsFontSizeToFitWidth установлено значение true? Надежно ли поведение (2), могу ли я на это рассчитывать? Я не могу понять это из официальной документации.

1 Ответ

0 голосов
/ 26 октября 2019

Чтобы получить ожидаемый результат, вам нужно только установить для минимального размера шрифта минимального размера шрифта для параметраScleScanFactor / MinimumFontSize (как правило, его половина размера шрифта метки по умолчанию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...