2009-11-10 12 views
6

C'è un modo per modificare il carattere di sistema per un'intera applicazione?Cambia carattere di sistema per l'applicazione iPhone - intera applicazione

Desidero definire il carattere per l'intera applicazione in modo che non debba andare a singole etichette o singoli caratteri per modificarlo. Vorrei una definizione universale che cambierà tutti i tipi di carattere che esistono all'interno dell'applicazione. Come faccio a fare questo?

risposta

2

Creare una classe condivisa denominata Constants.h o qualcosa del genere. In esso fare questo:

#define kStandardFont [UIFont systemFontOfSize:20] 

Naturalmente regolare il carattere per essere quello che ti serve. Quindi, ogni volta che è necessario utilizzare (in un'etichetta o altro) fare questo:

#import "Constants.h" 
… 
… 
… 
[label setFont:kStandardFont]; 
0

I caratteri sono specifici per ciascun controllo nell'interfaccia utente. Per exmaple, ogni UILabel ha le proprie impostazioni per i caratteri.

Se si desidera modificare il carattere di tutti i controlli, è necessario modificarli tutti.

1

No - è per questo che si chiama il carattere di sistema , e non il tipo di carattere applicazione.

+1

Poi c'è s omethign chiamato come font APplication che posso usare .... Coz i dotn wnat per assegnare individualmente il carattere a ogni cosa che ho sull'app ...Quindi c'è un modo in cui posso definire un font e poi sarà usato attraverso l'app – vivianaranha

2

Penso che la risposta giusta è: Non farlo! Scopri perché pensi di volerlo fare e poi scopri un altro modo per raggiungere gli stessi obiettivi. E la gente qui sarebbe felice di aiutare a capire un altro modo per quei fini. (Ad esempio, questo è ciò che la risposta di Coneybeare suggerisce efficacemente.)

Tutto ciò detto ... non c'è modo nell'SDK ufficiale di cambiare il font di sistema. Potresti essere in grado di fare qualche progresso facendo girare il sistema UFont di FontWithSize: metodo - vedi http://www.cocoadev.com/index.pl?MethodSwizzling per ulteriori informazioni sul metodo di swizzling. Ricordare (a) questo cambierà solo l'aspetto di qualsiasi cosa che usi systemFontWithSize: per ottenere il suo font, (b) questo potrebbe rompere tutti i tipi di cose che dipendono dall'avere la dimensione originale del font, e (c) questo potrebbe benissimo farti rifiutare dall'App Store.

Tutti questi avvertimenti si aggiungono alla domanda: cosa stai cercando di realizzare con questo?

4

È possibile utilizzare Pixate per personalizzare l'app. Quando si utilizza pixate, è possibile impostare gli attributi di stile degli elementi dell'interfaccia utente tramite CSS. In questo modo puoi configurare globalmente UILabels e UITextField ecc. Per utilizzare il tuo carattere personalizzato. Questo è di gran lunga il modo migliore per dare uno stile globale al tuo font.

Nella mia app ho dovuto usare "Open Sans" e di impostazione tutti i miei UILabels, UITextFields e UITextViews da usare quel tipo di carattere:

Nel vostro "default.css"

label { 
    font-family: "Open Sans"; 
} 

text-field { 
    font-family: "Open Sans"; 
} 

text-view { 
    font-family: "Open Sans"; 
} 

enter image description here

+2

Pixate è stato di gran lunga il modo più semplice per gestire il tipo personalizzato nella mia app. C'è molto meno codice coinvolto per fare cose semplici. Lo adoro. –

2

sembra funzionare almeno per UILabel s:

@interface UIFont (mxcl) 
@end 
@implementation UIFont (mxcl) 
+ (id)systemFontOfSize:(CGFloat)sz { 
    return [UIFont fontWithName:@"AmericanTypewriter" size:sz] 
} 
+ (id)boldSystemFontOfSize:(CGFloat)sz { 
    return [UIFont fontWithName:@"AmericanTypewriter-Bold" size:x] 
} 
@end