Аналогічну проблему обговорювали у встановленому на замовлення шрифті, який неправильно відображається у UILabel . Рішення не було дано.
Ось рішення, яке працювало на моєму власному шрифті, який мав ту саму проблему в UILabel, UIButton тощо. Проблемою з шрифтом виявився той факт, що його властивість висхідної форми була занадто малою порівняно зі значенням системних шрифтів. Ascender - це вертикальний пробіл над символами шрифту. Щоб виправити свій шрифт, вам доведеться завантажити утиліти командного рядка Apple Font Tool Suite . Потім візьміть свій шрифт і зробіть наступне:
~$ ftxdumperfuser -t hhea -A d Bold.ttf
Це створить Bold.hhea.xml. Відкрийте його за допомогою текстового редактора та збільште значення ascenderатрибута. Вам доведеться трохи експериментувати, щоб з’ясувати точне значення, яке найкраще підходить для вас. У моєму випадку я змінив його з 750 на 1200. Потім знову запустіть утиліту із наступного командного рядка, щоб об’єднати ваші зміни назад у файл ttf:
~$ ftxdumperfuser -t hhea -A f Bold.ttf
Потім просто використовуйте отриманий шрифт ttf у вашому додатку.
OS X El Capitan
Інсталятор Apple Font Tool Suite більше не працює на OSX El Capitan через SIP, оскільки він намагається встановити бінарні файли в захищений каталог. Ви повинні вручну витягнути ftxdumperfuser. Спочатку скопіюйте PKG з DMG в локальний каталог після Розпакування OS X Font Tools.pkgз
~$ xar -xf OS\ X\ Font\ Tools.pkg
Тепер перейдіть у папку за fontTools.pkgдопомогою
~$ cd fontTools.pkg/
Витяг корисного навантаження з
~$ cat Payload | gunzip -dc | cpio -i
Тепер ftxdumperfuserдвійковий файл знаходиться у вашій поточній папці. Ви можете перемістити його /usr/local/bin/так, щоб ви могли використовувати його у кожній папці всередині додатку терміналу із наступним.
~$ mv ftxdumperfuser /usr/local/bin/