Ein ähnliches Problem wurde unter Benutzerdefinierte installierte Schriftart diskutiert , die in UILabel nicht korrekt angezeigt wird . Es wurde keine Lösung angegeben.
Hier ist die Lösung, die für meine benutzerdefinierte Schriftart funktioniert hat, bei der das gleiche Problem in UILabel, UIButton usw. aufgetreten ist. Das Problem mit der Schriftart war die Tatsache, dass ihre Ascender-Eigenschaft im Vergleich zum Wert von Systemschriftarten zu klein war. Ascender ist ein vertikales Leerzeichen über den Schriftzeichen. Um Ihre Schriftart zu korrigieren, müssen Sie die Befehlszeilendienstprogramme der Apple Font Tool Suite herunterladen . Nehmen Sie dann Ihre Schriftart und gehen Sie wie folgt vor:
~$ ftxdumperfuser -t hhea -A d Bold.ttf
Dies wird erstellen Bold.hhea.xml
. Öffnen Sie es mit einem Texteditor und erhöhen Sie den Wert des ascender
Attributs. Sie müssen ein wenig experimentieren, um den genauen Wert herauszufinden, der für Sie am besten geeignet ist. In meinem Fall habe ich es von 750 auf 1200 geändert. Führen Sie dann das Dienstprogramm erneut mit der folgenden Befehlszeile aus, um Ihre Änderungen wieder in der ttf-Datei zusammenzuführen:
~$ ftxdumperfuser -t hhea -A f Bold.ttf
Verwenden Sie dann einfach die resultierende ttf-Schriftart in Ihrer App.
OS X El Capitan
Das Apple Font Tool Suite-Installationsprogramm funktioniert unter OSX El Capitan aufgrund von SIP nicht mehr, da versucht wird, die Binärdateien in einem geschützten Verzeichnis zu installieren. Sie müssen manuell extrahieren ftxdumperfuser
. Kopieren Sie zuerst das Paket aus dem dmg in ein lokales Verzeichnis und entpacken Sie anschließend das OS X Font Tools.pkg
mit
~$ xar -xf OS\ X\ Font\ Tools.pkg
Navigieren Sie nun in den Ordner fontTools.pkg
mit
~$ cd fontTools.pkg/
Nutzlast mit extrahieren
~$ cat Payload | gunzip -dc | cpio -i
Jetzt befindet sich die ftxdumperfuser
Binärdatei in Ihrem aktuellen Ordner. Sie können es wie /usr/local/bin/
folgt verschieben, damit Sie es in jedem Ordner innerhalb der Terminalanwendung verwenden können.
~$ mv ftxdumperfuser /usr/local/bin/