Um problema semelhante foi discutido em Fonte instalada personalizada não exibida corretamente no UILabel . Não houve solução dada.
Aqui está a solução que funcionou para minha fonte personalizada que tinha o mesmo problema em UILabel, UIButton e outros. O problema com a fonte acabou sendo o fato de que sua propriedade ascender era muito pequena em comparação com o valor das fontes do sistema. Ascender é um espaço em branco vertical acima dos caracteres da fonte. Para corrigir sua fonte, você terá que baixar os utilitários de linha de comando do Apple Font Tool Suite . Em seguida, pegue sua fonte e faça o seguinte:
~$ ftxdumperfuser -t hhea -A d Bold.ttf
Isso vai criar Bold.hhea.xml
. Abra-o com um editor de texto e aumente o valor do ascender
atributo. Você terá que experimentar um pouco para descobrir o valor exato que funciona melhor para você. No meu caso, mudei de 750 para 1200. Em seguida, execute o utilitário novamente com a seguinte linha de comando para mesclar suas alterações de volta no arquivo ttf:
~$ ftxdumperfuser -t hhea -A f Bold.ttf
Em seguida, basta usar a fonte ttf resultante em seu aplicativo.
OS X El Capitan
O Apple Font Tool Suite Installer não funciona mais no OSX El Capitan por causa do SIP porque ele tenta instalar os arquivos binários em um diretório protegido. Você tem que extrair manualmente ftxdumperfuser
. Primeiro copie o pacote do dmg para um diretório local, depois descompacte o OS X Font Tools.pkg
com
~$ xar -xf OS\ X\ Font\ Tools.pkg
Agora navegue para a pasta fontTools.pkg
com
~$ cd fontTools.pkg/
Extraia carga útil com
~$ cat Payload | gunzip -dc | cpio -i
Agora o ftxdumperfuser
binário está em sua pasta atual. Você pode movê-lo para /usr/local/bin/
para que possa usá-lo em todas as pastas dentro do aplicativo de terminal com o seguinte.
~$ mv ftxdumperfuser /usr/local/bin/