Podobny problem został omówiony w sekcji Niestandardowa zainstalowana czcionka, która nie jest poprawnie wyświetlana w UILabel . Nie podano rozwiązania.
Oto rozwiązanie, które zadziałało dla mojej niestandardowej czcionki, która miała ten sam problem w UILabel, UIButton i tym podobnych. Problem z czcionką polegał na tym, że jej właściwość wznosząca była zbyt mała w porównaniu z wartością czcionek systemowych. Ascender to pionowa spacja nad znakami czcionki. Aby naprawić czcionkę, musisz pobrać narzędzia wiersza poleceń Apple Font Tool Suite . Następnie weź czcionkę i wykonaj następujące czynności:
~$ ftxdumperfuser -t hhea -A d Bold.ttf
To stworzy Bold.hhea.xml
. Otwórz go w edytorze tekstu i zwiększ wartość ascender
atrybutu. Będziesz musiał trochę poeksperymentować, aby znaleźć dokładną wartość, która będzie dla Ciebie najlepsza. W moim przypadku zmieniłem go z 750 na 1200. Następnie uruchom narzędzie ponownie, używając następującego wiersza poleceń, aby scalić zmiany z powrotem w pliku ttf:
~$ ftxdumperfuser -t hhea -A f Bold.ttf
Następnie po prostu użyj powstałej czcionki ttf w swojej aplikacji.
OS X El Capitan
Instalator Apple Font Tool Suite nie działa już w systemie OSX El Capitan z powodu SIP, ponieważ próbuje zainstalować pliki binarne w chronionym katalogu. Musisz ręcznie wyodrębnić ftxdumperfuser
. Pierwsza kopia PKG z DMG do katalogu lokalnego potem Rozpakuj OS X Font Tools.pkg
z
~$ xar -xf OS\ X\ Font\ Tools.pkg
Teraz przejdź do folderu za fontTools.pkg
pomocą
~$ cd fontTools.pkg/
Wyodrębnij ładunek za pomocą
~$ cat Payload | gunzip -dc | cpio -i
Teraz ftxdumperfuser
plik binarny znajduje się w Twoim bieżącym folderze. Możesz go przenieść do /usr/local/bin/
, aby móc go używać w każdym folderze w aplikacji terminala, wykonując następujące czynności.
~$ mv ftxdumperfuser /usr/local/bin/