2010-12-15 55 views
1

Comme il semble qu'il n'est pas possible d'appliquer une police personnalisée via Interface Builder, j'ai essayé de définir une nouvelle classe dérivée de UILabel et de définir dans sa méthode - (id) init la coutume police que j'utiliserais: ceci n'aboutit pas au résultat escompté car la police utilisée à l'exécution semble toujours être la 'Helvetica' (ma police personnalisée est 'africaine' et elle fonctionne si elle est définie par code).Nouvelle classe d'étiquettes dans l'iPhone avec une police personnalisée

Voici mon extrait dérivé UILabel-:

- (id)init { 
    UIFont *font = [UIFont fontWithName:@"african" size:10]; 
    [self setFont:font];  

    return self; 
} 

Par conséquent, je suis actuellement résoudre le problème en forçant la police via le code:

NSLog(@"Before FONT NAME IS ------------> %@", myLabel.font.fontName); 
UIFont *font = [UIFont fontWithName:@"african" size:10]; 
[myLabel setFont:font]; 
myLabel.text = @"HELLO!"; 
NSLog(@"After FONT NAME IS ------------> %@", myLabel.font.fontName); 

L'impression est la suivante:

Before FONT NAME IS ------------> Helvetica 
After FONT NAME IS ------------> African 

Il semble que la police par défaut que j'ai définie dans la méthode init soit remplacée: où dois-je définir il?

+0

En fait, il est possible de changer la police d'Interface Builder. Allez dans le menu Polices -> Afficher les polices. Ensuite, sélectionnez votre étiquette et choisissez votre nouvelle police. – ughoavgfhw

+0

J'ai essayé ceci et même si je peux ajouter la nouvelle police et l'utiliser sur IB, à l'exécution j'ai toujours le mauvais. –

Répondre

1

Si vous utilisez votre fonction init comme « soi » aura aucune valeur ... Toutes les fonctions init doivent ressembler à ceci

- (id)init { 
    self = [super init]; 
    if (self) { 
     // Your init code here 
    } 
    return self; 
} 

En outre assurez-vous que vous substituez « initWithFrame: » aussi, et peut-être "initWithCoder:" si vous voulez l'utiliser depuis IB.

+0

initWithCoder: fait le travail, merci. –