Аналогічну проблему обговорювали у встановленому на замовлення шрифті, який неправильно відображається у 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/