Un problème similaire a été discuté à La police installée personnalisée ne s'affiche pas correctement dans UILabel . Aucune solution n'a été donnée.
Voici la solution qui a fonctionné pour ma police personnalisée qui avait le même problème dans UILabel, UIButton et autres. Le problème avec la police s'est avéré être le fait que sa propriété ascendante était trop petite par rapport à la valeur des polices système. L'ascendeur est un espace blanc vertical au-dessus des caractères de la police. Pour réparer votre police, vous devrez télécharger les utilitaires de ligne de commande Apple Font Tool Suite . Ensuite, prenez votre police et procédez comme suit:
~$ ftxdumperfuser -t hhea -A d Bold.ttf
Cela créera Bold.hhea.xml
. Ouvrez-le avec un éditeur de texte et augmentez la valeur de l' ascender
attribut. Vous devrez expérimenter un peu pour trouver la valeur exacte qui vous convient le mieux. Dans mon cas, je l'ai changé de 750 à 1200. Ensuite, exécutez à nouveau l'utilitaire avec la ligne de commande suivante pour fusionner vos modifications dans le fichier ttf:
~$ ftxdumperfuser -t hhea -A f Bold.ttf
Ensuite, utilisez simplement la police ttf résultante dans votre application.
OS X El Capitan
Le programme d'installation d'Apple Font Tool Suite ne fonctionne plus sur OSX El Capitan à cause de SIP car il tente d'installer les fichiers binaires dans un répertoire protégé. Vous devez extraire manuellement ftxdumperfuser
. Copiez d'abord le pkg du dmg dans un répertoire local, puis décompressez le OS X Font Tools.pkg
avec
~$ xar -xf OS\ X\ Font\ Tools.pkg
Naviguez maintenant dans le dossier fontTools.pkg
avec
~$ cd fontTools.pkg/
Extraire la charge utile avec
~$ cat Payload | gunzip -dc | cpio -i
Maintenant, le ftxdumperfuser
binaire est dans votre dossier actuel. Vous pouvez le déplacer pour /usr/local/bin/
pouvoir l'utiliser dans chaque dossier à l'intérieur de l'application de terminal avec les éléments suivants.
~$ mv ftxdumperfuser /usr/local/bin/