Расчет размера NSAttributedString возвращает разные результаты с опцией .usesFontLeading - PullRequest
0 голосов
/ 02 октября 2019

TLDR;Я обнаружил, что .usesFontLeading возвращает другой результат в iOS 13, но я хочу знать, почему?


У меня есть ошибка в iOS 13, что мое приложение показывает неверную высоту текста. Эта ошибка не возникает в iOS 12.

У меня есть код для расчета высоты нескольких строк: NSAttributedString.

Я обнаружил, что при разных параметрах один имеет ведущий шрифт, другойодин не делает. Код возвращает разные результаты.

let height_with_font_leading = text.boundingRect(with: constraintSize,
                                                 options: [.usesLineFragmentOrigin, .usesFontLeading],
                                                 context: nil).height

let height_with_no_font_leading = text.boundingRect(with: constraintSize,
                                                    options: [.usesLineFragmentOrigin],
                                                    context: nil).height

Высота вычислений показана на рисунках ниже.

with_font_leadingwithout_font_leading

Как видите, высота без .usesFontLeading правильная, поскольку метка может отображать полный текст без усечения.

  1. Какова цель .usesFontLeading?
  2. Когда мне его использовать?

Вот полный фрагмент моего кода:

https://gist.github.com/nRewik/7760ac31f107642c70eb9e659862ac3b

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