Comment puis-je définir une police personnalisée pour l'ensemble de l'application?
Est-il de toute façon à la demande mondiale de police [nouvelle police personnalisée] pour l'ensemble de l'application iphone (objective-c.
Je sais que nous pouvons utiliser la méthode ci-dessous pour définir la police pour chaque étiquette
[self.titleLabel setFont:[UIFont fontWithName:@"FONOT_NAME" size:FONT_SIZE]];
Mais je veux changer pour l'ensemble de l'application.
Merci de m'aider si quelqu'un sait.
avez-vous dire que vous souhaitez modifier les polices de toute l'application ?
OriginalL'auteur Shivomkara Chaturvedi | 2011-09-30
Vous devez vous connecter pour publier un commentaire.
Apparemment de changer TOUS les UILabels en tout, vous aurez besoin de configurer une catégorie sur UILabel et de modifier la police par défaut. Alors, voici une solution pour vous:
Créer un fichier CustomFontLabel.h
Créer un fichier CustomFontLabel.m
Maintenant ... en tout-vue-contrôleur, vous voulez que ces polices personnalisées étiquettes, il suffit d'inclure dans le haut:
C'est tout bonne chance
awakeFromNib
etinitWithFrame
, maintenant si Apple ajoute un peu important peu de code?J'ai aussi eu une idée. Parce que votre méthode est trop long. Je viens de créer une catégorie de ce genre. dans mon délégué d'application @mise en œuvre UILabel (labelFont) - (void)awakeFromNib { [super awakeFromNib]; self.font = [UIFont fontWithName:@"Bauhaus Md BT" taille:auto.la police.pointSize]; }
En tout cas merci pour votre aide. Bonne Réponse
Oui. Vous écrasez les méthodes standard de
UILabel
classe à l'aide d'une catégorie. Le problème est qu'il n'y a pas de danger pour appeler le code que vous avez remplacé l'appel desuper
dans une catégorie ne pas appeler le code que vous avez remplacé. Droit maintenant, la norme de mise en œuvre de[UILabel awakeFromNib]
ne semble pas faire quelque chose d'important, de sorte que la “solution” fonctionne pour l'instant. Cela pourrait changer dans n'importe quel mineur de mise à jour et que votre application va se casser.Les gens, NE PAS l'UTILISER! D'abord une raison économique: aujourd'hui, votre travail est d'une valeur inférieure à demain, afin de gagner du temps aujourd'hui qui va vous faire passer plus de temps demain n'est pas une sage décision. Et puis la raison directe: cela peut changer à tout moment! S'il vous plaît apprendre à propos de la méthode swizzling de le faire de façon plus sécuritaire.
OriginalL'auteur Marin Todorov
Ican de la solution avec la catégorie pourrait être préféré, juste pour sauver la journée. Mais évitez d'utiliser la catégorie de remplacer les méthodes existantes comme apple explique:
Éviter Catégorie Nom De La Méthode D'Affrontements
Note également que primordial
-(id) init;
serait plus sûr d'écraser les-(id)initWithFrame:(CGRect)frame
. Vous ne seraient pas confrontés avec le problème de ne pas recevoir les événements tactiles lorsque vous cliquez sur une étiquette de UIButtons.OriginalL'auteur stanil
Est-ce que tu veux dire?
Dans le cas où vous voulez le faire en quelque sorte automatiquement (sans l'aide de
setFont
sur chaque contrôle), je ne crois pas que c'est possible.vous avez raison, n'est-ce pas pensé à cela.
OriginalL'auteur alex-i
Si vous pouvez limiter votre application ou de cette fonctionnalité particulière – pour iOS 5, il y a une nouvelle API à venir qui vous permet de la peau par défaut de l'INTERFACE utilisateur très facilement. Je ne peux pas vous donner plus de détails, car ils sont toujours sous NDA au moment où j'écris ces lignes. Prendre un regarder iOS 5 beta SDK pour en savoir plus.
OriginalL'auteur zoul
CustomLabel.h
CustomLabel.m
OriginalL'auteur Vivek