Как не дать UILabel приклеить последнее «короткое» слово к предыдущему? - PullRequest
2 голосов
/ 16 апреля 2019

Я заметил, что UILabel неправильно переносит слова. Он склеивает последнее короткое слово (не более 10 символов) с предыдущим и перемещает их вместе во второй строке.

Проверьте иллюстрацию: enter image description here

Метка # 1: В первой строке достаточно места для слова «семь» (как и ожидалось).

Метка # 2: Добавлено еще одно «короткое» слово и слово «семь» перенесено во вторую строку (я бы хотел избежать такого поведения).

Метка № 3: Последнее слово содержит 10 символов и по-прежнему обрабатывается Меткой как «короткое».

Метка # 4: Последнее слово содержит 11 символов и теперь отсоединено от слова «семь», которое возвращается к первой строке (как и ожидалось).

Похоже, Apple борется с «вдовами» и вынуждает к «хорошей типографии» этим поведением. Но иногда мне не нужна такая забота. Итак, как я могу помешать UILabel приклеить последние слова к предыдущему?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Исправлено с помощью NSAllowsDefaultLineBreakStrategy, установленным на false.enter image description here

0 голосов
/ 16 апреля 2019

Большинство шрифтов в iOS / macOS пропорциональны, и система шрифтов пытается использовать хорошие стандарты типографики.Поэтому символы и / или типография изменят интервал на основе других символов вокруг него, длины строки и т. Д. Чтобы получить более предсказуемое отображение текста, используйте шрифт с фиксированным интервалом, например, Монако, или другие шрифты с фиксированным интервалом.Это приведет к гораздо более предсказуемому отображению.

Ниже приведены рекомендации Apple по типографии:

https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/typography/

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