Je sais que cette question est assez vieux, mais j'ai eu du mal à trouver un moyen facile de spécifier une police personnalisée sous forme d'un Storyboard (ou Interface Builder) facilement pour iOS 5 et j'ai trouvé une solution très pratique.
Tout d'abord, assurez-vous que vous avez ajouté la police pour le projet en suivant ce tutoriel. Rappelez-vous aussi que UINavigationBar, UITabBar et UISegmentedControl police personnalisée peut être spécifié à l'aide de l' setTitleTextAttributes:
méthode de la UIAppearance proxy.
Ajouter les catégories ci-dessous pour le projet de UIButton, UITextField, UILabel et tout autre élément composant qui a besoin d'une police personnalisée. Les catégories de simplement mettre en œuvre une nouvelle propriété, fontName
qui change la police de l'élément tout en maintenant la taille de la police.
Pour spécifier la police dans le Storyboard, il suffit de sélectionner l'élément souhaité (label, button, textview, etc) et d'ajouter un Utilisateur Défini Exécution de l'Attribut avec la Clé de Chemin ensemble au nom de la fonte de type Chaîne de valeur et avec le nom de votre police personnalisée.
Et voilà, vous n'avez même pas besoin d'importer les catégories. De cette façon, vous n'avez pas besoin d'une sortie pour chaque composant de l'INTERFACE utilisateur qui nécessite une police personnalisée et vous n'avez pas besoin de code manuellement.
Prendre en compte le fait que la police de ne pas s'afficher dans la table de montage séquentiel, mais vous le verrez lors de l'exécution sur votre appareil ou sur simulateur.
La catégorie fichiers
UIButton+TCCustomFont.h:
#import <UIKit/UIKit.h>
@interface UIButton (TCCustomFont)
@property (nonatomic, copy) NSString* fontName;
@end
UIButton+TCCustomFont.m:
#import "UIButton+TCCustomFont.h"
@implementation UIButton (TCCustomFont)
- (NSString *)fontName {
return self.titleLabel.font.fontName;
}
- (void)setFontName:(NSString *)fontName {
self.titleLabel.font = [UIFont fontWithName:fontName size:self.titleLabel.font.pointSize];
}
@end
UILabel+TCCustomFont.h:
#import <UIKit/UIKit.h>
@interface UILabel (TCCustomFont)
@property (nonatomic, copy) NSString* fontName;
@end
UILabel+TCCustomFont.m:
#import "UILabel+TCCustomFont.h"
@implementation UILabel (TCCustomFont)
- (NSString *)fontName {
return self.font.fontName;
}
- (void)setFontName:(NSString *)fontName {
self.font = [UIFont fontWithName:fontName size:self.font.pointSize];
}
@end
UITextField+TCCustomFont.h:
#import <UIKit/UIKit.h>
@interface UITextField (TCCustomFont)
@property (nonatomic, copy) NSString* fontName;
@end
UITextField+TCCustomFont.m:
#import "UITextField+TCCustomFont.h"
@implementation UITextField (TCCustomFont)
- (NSString *)fontName {
return self.font.fontName;
}
- (void)setFontName:(NSString *)fontName {
self.font = [UIFont fontWithName:fontName size:self.font.pointSize];
}
@end
Également téléchargeable à partir de GIST et aussi comme un seul fichier.
Dépannage
Si vous exécutez à l'encontre des erreurs d'exécution, parce que l' fontName
de la propriété n'est pas spécifiée, il suffit d'ajouter le drapeau de l' -all_load
sous d'Autres Drapeaux de l'éditeur de liens dans les paramètres de projet pour forcer l'éditeur de liens pour inclure les catégories.