Question

Est-il possible que je peux changer le système de police pour une application entière?

Je veux définir la police pour toute l'application pour que je ne dois pas aller à des étiquettes individuelles ou les polices pour le changer. Je voudrais une définition universelle qui changera toutes les polices qui existent dans l'application. Comment puis-je faire?

Était-ce utile?

La solution

Faire une classe partagée appelée Constants.h ou quelque chose. Dans ce faire ceci:

#define kStandardFont [UIFont systemFontOfSize:20] 

Bien sûr ajuster la police pour être ce que vous avez besoin d'être. Ensuite, chaque fois que vous devez l'utiliser (dans une étiquette ou autre) faire ceci:

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

Autres conseils

Vous pouvez utiliser Pixate pour le style de votre application. Lorsque vous utilisez pixate, vous pouvez définir les attributs de style de vos éléments d'interface utilisateur via CSS. De cette façon, vous pouvez configurer globalement vos UILabels et UITextField etc utiliser votre police personnalisée. Ceci est de loin la meilleure façon de globalement le style de votre police.

Dans mon application, je devais utiliser « Open Sans » et configurer tous mes UILabels, UITextFields et UITextViews utiliser cette police:

Dans votre "default.css"

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

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

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

entrer image description ici

Je pense que la bonne réponse est: Ne fais pas ça! Figure pourquoi vous pensez que vous voulez faire, puis trouver une autre façon d'atteindre les mêmes fins. Et les gens ici seraient heureux d'aider à comprendre une autre façon à ces fins. (Par exemple qui est ce que la réponse de Coneybeare suggère effectivement.)

Cela dit ... il n'y a aucun moyen dans le SDK officiel pour changer la police du système. Vous pourriez être en mesure de faire des progrès par swizzling systemFontWithSize de UIFont: méthode - voir http: // www .cocoadev.com / index.pl? MethodSwizzling pour plus sur la méthode swizzling. Gardez à l'esprit (a) cela ne changera l'apparence de tout ce qui utilise systemFontWithSize: pour obtenir sa police, (b) cela peut casser toutes sortes de choses qui dépendent de l'avoir la taille de la police d'origine, et (c) cela pourrait bien obtenez-vous pas faire partie du App Store.

Toutes ces mises en garde ajouter à la question: Qu'est-ce que vous essayez vraiment d'accomplir avec cette

Semble fonctionner au moins pour 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

Non - c'est pourquoi il est appelé système la police, et non application font

.

Les polices sont spécifiques à chaque commande dans l'interface utilisateur. Par exemple, chaque UILabel a son propre réglage de la police.

Si vous voulez changer la police de tous les contrôles, vous devrez les changer tous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top