How to: custom fonts su iOS 3.2

Con la release 3.2 di iOS è possibile includere nelle risorse di un’applicazione propri font, da usare esatamente come quelli di forniti di sistema:

Applications that want to use custom fonts can now include those fonts in their application bundle and register those fonts with the system by including the UIAppFonts key in their Info.plist file. The value of this key is an array of strings identifying the font files in the application’s bundle. When the system sees the key, it loads the specified fonts and makes them available to the application.

Vediamo quindi i passi necessari per utilizzare un proprio font all’interno di un’applicazione iPhone/iPad con iOS 3.2+.

Scegliere il font

Prima di tutto scegliamo un font, individuiamolo nel filesystem e copiamo il file all’interno del nostro progetto Xcode:

Custom font su iOS 3.2

Registrazione nel file plist

Inserito il font nel bundle editiamo il file plist dell’applicazione e inseriamo la chiave Fonts provided by application, inserendo il nome del file caricato nelle risorse, come mostrato nella figura qui sotto:

Custom font su iOS 3.2

Identificazione del nome

In linea di principio abbiamo terminato la fase di installazione e registrazione del nostro, o dei nostri, font. Le procedure descritte sopra, infatti, possono essere ripetute per quanti font vogliamo. Per poter utilizzare il font è sufficiente creare un oggetto UIFont, come faremmo per qualsiasi altro font di sistema, utilizzando:

1
[UIFont fontWithName:<nome font> size:<dimensione>]

Per recuperare il nome da passare al metodo di classe fontWithName di UIFont, potete inserire all’interno del vostro codice questo semplice loop:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Array con la lista di tutte le famiglie di fonts installati
// compreso quello installato dall'applicazione
NSArray *listOfFonts = [[NSArray alloc] initWithArray:[UIFont familyNames]];

for (NSString *fonts in listOfFonts) {
    NSLog(@"Font family: %@", fonts);
   
    // Nome del/dei font in base al nome della famiglia
    NSArray *subFontTypes = [NSArray arrayWithArray:[UIFont fontNamesForFamilyName:fonts]];
    for (NSString *fontName in subFontTypes) {
        NSLog(@"+--> Font name: %@", fontName);
    }
}
[listOfFonts release];

Questo stamperà nella console tutte le famiglie di font e i relativi nomi:

Custom Font su iOS 3.2

Una famiglia, ad esempio Arial, ha 4 tipi di font (fontName) utilizzabili:

Custom Font su iOS 3.2

Il fontName è quello che interessa a noi, come mostrato nell’immagine di sopra: la freccia rossa indica il nome del font relativo alla famiglia Giddyup Std. A questo punto, se abbiamo una label ad esempio, sarà sufficiente scrivere:

1
2
3
// Se myLabel è un oggetto UILabel
[myLabel setFont:[UIFont fontWithName:@"GiddyupStd" size:20.0f]];
[myLabel setText: @"Font personale"];

Non ci sono commenti per questo Post

Lascia un commento

TAG XHTML PERMESSI: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERIMENTO CODICE:
<pre></pre> // blocco generico
                   <code></code> // blocco generico
                   [cc_actionscript][/cc_actionscript] // Actionscript
                   [cc_actionscript3][/cc_actionscript3] // Actionscript 3
                   [cc_css][/cc_css] // CSS Style Sheet
                   [cc_html][/cc_html] // HTML
                   [cc_js][/cc_js] // Javascript
                   [cc_objc][/cc_objc] // Objective-C
                   [cc_php][/cc_objc] // PHP
                   [cc_sql][/cc_sql] // SQL