Frage

Gibt es eine Möglichkeit ich die Systemschriftart für eine gesamte Anwendung ändern?

Ich mag die Schriftart für die gesamte Anwendung zu definieren, so dass ich gehe nicht auf einzelne Etiketten oder einzelne Zeichensätze zu ändern. Ich würde eine universelle Definition wie die alle Schriftarten ändern, die in der Anwendung vorhanden ist. Wie mache ich das?

War es hilfreich?

Lösung

Erstellen Sie eine gemeinsame Klasse namens Constants.h oder so etwas. Darin dies tun:

#define kStandardFont [UIFont systemFontOfSize:20] 

Natürlich passen Sie die Schrift zu sein, was Sie brauchen, es zu sein. Dann, wenn Sie müssen, es zu benutzen (in einem Etikett oder was auch immer) dies zu tun:

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

Andere Tipps

Sie können mit Pixate Ihre App stylen. Wenn pixate verwenden, können Sie die Stilattribute des UI-Elemente per CSS gesetzt. So können Sie Ihre Einrichtung UILabels global und UITextField usw. Ihre eigene Schriftart zu verwenden. Dies ist bei weitem der beste Weg, um Stil Ihre Schrift global.

In meiner app hatte ich "Open Sans" und das Setup all meine UILabels, UITextFields und UITextViews zu verwenden, die Schriftart zu verwenden:

In Ihrem "default.css"

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

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

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

eingeben Bild Beschreibung hier

Ich denke, dass die richtige Antwort ist: Tu das nicht! Herauszufinden, warum Sie denken, Sie das tun wollen, und dann eine andere Art und Weise herauszufinden, die gleichen Ziele zu erreichen. Und Leute hier würden uns freuen, einen anderen Weg zu diesen Enden helfen herauszufinden. (Zum Beispiel das ist, was Coneybeare Antwort schlägt effektiv.)

Alles, was gesagt ... es gibt keine Möglichkeit in der offiziellen SDK die Systemschriftart zu ändern. Sie könnten in der Lage sein, einige Fortschritte zu machen, indem Swizzling UIFont der systemFontWithSize: Methode - siehe http: // www .cocoadev.com / index.pl? MethodSwizzling mehr auf Verfahren Swizzling. Denken Sie daran, (a), wird dies nur das Aussehen von etwas ändern, die systemFontWithSize verwendet: seine Schrift zu erhalten, (b) könnte dies all möglichen Dinge brechen, die auf der mit der ursprünglichen Schriftgröße abhängig ist, und (c) das könnte gut erhalten Sie im App Store abgelehnt.

All diese Einschränkungen ergänzen die Frage:? Was wollen Sie wirklich mit, dies zu erreichen

Es scheint zumindest für UILabels zu arbeiten:

@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

Nein - das ist, warum es das System genannt Schriftart und nicht die Anwendung Schrift

.

Schriften sind zu jeder Kontrolle in der UI-spezifisch. Zum Beispiel kann jeder UILabel hat seine eigene Schriftart-Einstellung.

Wenn Sie die Schrift aller Bedienelemente ändern möchten, werden Sie ändern müssen sie alle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top