BLOG

Acompanhe a Mobits pelo RSS

FILTROS

A partir do iOS 3.2, a Apple passou a permitir oficialmente o uso de fontes customizadas em aplicativos para iPad, depois com o iOS 4 isso também se estendeu para aplicativos iPhone.

Importando a fonte

Para adicionar fontes é muito simples: basta importar a fonte para o seu projeto, dando Add > Existing Files no arquivo de fonte na pasta resources do seu projeto Xcode e depois colocar a fonte no seu plist, criando uma chave UIAppFonts:

<key>UIAppFonts</key>
<array>
    <string>TarzaNarIta.ttf</string>
    <string>TarzaNarBol.ttf</string>
</array>

Depois para usá-la em seu código basta chamar o método fontWithName de UIFont, passando o nome da fonte importada:

self.tituloLabel.font = [UIFont fontWithName:@"TarzanaNarrowBold" size:21.0];

Para saber se as fontes foram importadas corretamente, nós sugerimos o código abaixo que imprime todas as fontes que o seu aplicativo suporta, inclusive as customizadas. Ele também é bom para saber o nome real da fonte que você importou, pois ele pode ser diferente do arquivo:

// List all fonts on iPhone
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
{
    NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
    fontNames = [[NSArray alloc] initWithArray:
    [UIFont fontNamesForFamilyName:
    [familyNames objectAtIndex:indFamily]]];
    for (indFont=0; indFont<[fontNames count]; ++indFont)
    {
        NSLog(@"    Font name: %@", [fontNames objectAtIndex:indFont]);
    }
    [fontNames release];
}
[familyNames release];

Problema: Interface Builder

O cenário ideal seria poder usar essas fontes customizadas direto no Interface Builder, mas nas nossas tentativas com o Xcode 3 isso não foi possível. Quando a fonte customizada é selecionada no Xib, ela ainda aparece como Helvetica no aplicativo, por isso, ainda é preciso mapear cada label ou botão com fonte customizada e executar o código acima para alterar a fonte. Se alguém já testou usar fontes customizadas no Xcode 4 ou conseguiu fazer isso no Xcode 3 não deixe de comentar abaixo.

COMPARTILHE

2 COMENTÁRIOs

  1. Lucas Moreira 10/09/2011, 11:38

    Boa noite amigos!

    Em alguns dos meus projetos que necessito o uso, já utilizei essa biblioteca: https://github.com/zynga/FontLabel

    Bem interessante e funcional o método que vocês apresentaram.

    Abraços!

  2. Quintana 10/09/2011, 11:39

    Opa, valeu pela dica Lucas! Vamos dar uma olhada nessa biblioteca sim e medir os prós e contras.

DEIXE UM COMENTÁRIO

If you can read this, you don't use a typical webbrowser that plays nice with CSS.
Please do not fill in anything here!