UILabel с нестандартным шрифтом неправильно отображается - PullRequest
6 голосов
/ 16 марта 2012

В своем приложении для iPhone я установил пользовательский шрифт для всех UILabels (точнее, я переклассифицировал UILabel, переопределив метод, установив пользовательский шрифт в этом методе, а затем установил все метки в IB для этого пользовательского класса).Проблема в том, что все тексты отображаются слишком далеко от ожидаемой базовой линии, поэтому буквы типа «у» и «г» обрезаются ниже.Я читал о подобных проблемах здесь:

Вертикальное выравнивание пользовательского шрифта UIButton

Пользовательский установленный шрифт неправильно отображается в UILabel

Затем я попытался возиться с зажимом, как описано в этих решениях (изначально оно было установлено на 990).Установка этого значения около 500 привела к хорошим результатам, но вскоре после этого я заметил, что строки в многострочных текстах смешивались друг с другом, что, конечно, неприемлемо.В UITextViews шрифт выглядит нормально с исходной базовой линией, хотя ..

Есть ли практический способ решения этой проблемы?Конечно, я мог бы хранить несколько шрифтов с разными символами для многострочного или однострочного текста, но это довольно грязное решение.

PS: шрифт предоставляется в формате otf, хотя я пытался конвертировать егок ттф, что приводит к тем же результатам.

1 Ответ

6 голосов
/ 19 марта 2012

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

...