Se discutió un problema similar en La fuente instalada personalizada no se muestra correctamente en UILabel . No se dio ninguna solución.
Aquí está la solución que funcionó para mi fuente personalizada que tenía el mismo problema en UILabel, UIButton y demás. El problema con la fuente resultó ser el hecho de que su propiedad ascendente era demasiado pequeña en comparación con el valor de las fuentes del sistema. Ascender es un espacio en blanco vertical sobre los caracteres de la fuente. Para arreglar su fuente, tendrá que descargar las utilidades de línea de comandos de Apple Font Tool Suite . Luego toma tu fuente y haz lo siguiente:
~$ ftxdumperfuser -t hhea -A d Bold.ttf
Esto creará Bold.hhea.xml
. Ábralo con un editor de texto y aumente el valor del ascender
atributo. Tendrá que experimentar un poco para encontrar el valor exacto que mejor funcione para usted. En mi caso, lo cambié de 750 a 1200. Luego, ejecute la utilidad nuevamente con la siguiente línea de comando para fusionar sus cambios nuevamente en el archivo ttf:
~$ ftxdumperfuser -t hhea -A f Bold.ttf
Luego, use la fuente ttf resultante en su aplicación.
OS X El Capitán
El instalador de Apple Font Tool Suite ya no funciona en OSX El Capitan debido a SIP porque intenta instalar los archivos binarios en un directorio protegido. Tienes que extraer manualmente ftxdumperfuser
. Primero copie el paquete del dmg a un directorio local, luego descomprima el paquete OS X Font Tools.pkg
con
~$ xar -xf OS\ X\ Font\ Tools.pkg
Ahora navegue a la carpeta fontTools.pkg
con
~$ cd fontTools.pkg/
Extraiga la carga útil con
~$ cat Payload | gunzip -dc | cpio -i
Ahora el ftxdumperfuser
binario está en su carpeta actual. Puede moverlo para /usr/local/bin/
poder usarlo en cada carpeta dentro de la aplicación de terminal con lo siguiente.
~$ mv ftxdumperfuser /usr/local/bin/