Domanda

C'è un modo per cambiare il font di sistema per un'intera applicazione?

voglio definire il tipo di carattere per l'intera applicazione in modo che non devo andare a singole etichette o font individuali per cambiarlo. Vorrei una definizione universale che cambierà tutti i font presenti all'interno dell'applicazione. Come posso fare questo?

È stato utile?

Soluzione

Fare una classe chiamata Constants.h condiviso o qualcosa del genere. In esso fare questo:

#define kStandardFont [UIFont systemFontOfSize:20] 

Naturalmente regolare il carattere di essere ciò che è necessario che sia. Quindi, ogni volta che è necessario utilizzare (in un'etichetta o altro) fare questo:

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

Altri suggerimenti

È possibile utilizzare Pixate per lo stile la vostra applicazione. Quando si utilizza pixate, è possibile impostare gli attributi di stile dei vostri elementi dell'interfaccia utente tramite CSS. In questo modo è possibile globalmente impostazione tuoi UILabels e UITextField ecc di utilizzare il carattere personalizzato. Questo è di gran lunga il modo migliore per globalmente stile il tipo di carattere.

Nella mia app ho dovuto usare "Open Sans" e di impostazione tutti i miei UILabels, UITextFields e UITextViews di utilizzare 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";
}

entrare descrizione dell'immagine qui

Credo che la risposta giusta è: Non farlo! Capire perché si pensa che si desidera farlo, e quindi capire qualche altro modo per raggiungere gli stessi fini. E la gente qui sarebbe felice di aiutare a capire un altro modo per quei fini. (Per esempio questo è ciò che suggerisce in modo efficace la risposta di coneybeare.)

Tutto ciò che ha detto ... non c'è modo nel SDK ufficiale per cambiare il carattere di sistema. Potreste essere in grado di fare qualche passo avanti da swizzling systemFontWithSize di UIFont: Metodo - vedi http: // www .cocoadev.com / index.pl? MethodSwizzling per ulteriori informazioni sul metodo di swizzling. Tenete a mente (a) questo cambierà solo l'aspetto di tutto ciò che utilizza systemFontWithSize: per ottenere il suo carattere, (b) questo potrebbe rompere tutti i tipi di cose che dipendono da avere la dimensione del carattere originale, e (c) questo bene potrebbe farti respinto da App Store.

Tutti questi avvertimenti si sommano alla domanda: Che cosa stai veramente cercando di realizzare con questo

Sembra funzionare almeno per UILabels:

@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

No - è per questo che si chiama Sistema di carattere, e non l'applicazione di carattere

.

I caratteri sono specifici per ogni controllo nell'interfaccia utente. Ad esempio, ogni UILabel ha la propria impostazione dei font.

Se si desidera cambiare il tipo di carattere di tutti i controlli, dovrete cambiare tutti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top