Police personnalisée dans un storyboard?

J'ai une police ajoutée à mon projet iOS. C'est dans le projet et copié lorsque le projet se construit. Il semble être une police valide et apparaîtra si je list toutes les fonts sur l'appareil via l'application. J'ai le plist mis en place correctement pour inclure la police. Je n'arrive pas à find la search pour l'utiliser dans mes commands de text, buttons, etc. dans la section Storyboard de Xcode 4.2. En outre, il ne semble pas me permettre de taper le nom de la police, il me force à utiliser le dialog de police. J'ai également essayé d'installer cette police dans le système, mais je n'arrive pas à l'afficher dans cette list. Ai-je besoin de le faire uniquement en code ou puis-je le faire via l'interface du storyboard?

Notez que je peux get ceci fonctionnant dans le code, mais il serait beaucoup plus commode de faire ceci par le storyboard.

    MISE À JOUR: Xcode 6 Interface Builder vous permet désormais de sélectionner des fonts personnalisées et de les afficher correctement au moment du design.

    Je sais que cette question est assez ancienne, mais j'ai eu du mal à find un moyen facile de spécifier une police personnalisée dans Storyboard (ou Interface Builder) facilement pour iOS 5 et j'ai trouvé une solution assez pratique.

    Tout d'abord, assurez-vous que vous avez ajouté la police au projet en suivant ce tutoriel . Souvenez-vous également que la police personnalisée UINavigationBar, UITabBar et UISegmentedControl peut être spécifiée en utilisant la méthode setTitleTextAtsortingbutes: du proxy UIAppearance .

    Ajoutez les catégories ci-dessous au projet pour UIButton, UITextField, UILabel et tout autre composant qui a besoin d'une police personnalisée. Les catégories implémentent simplement une nouvelle propriété fontName qui modifie la police courante de l'élément tout en conservant la taille de la police.

    Pour spécifier la police dans Storyboard, select simplement l'élément désiré (label, button, textview, etc.) et ajoutez un atsortingbut d'exécution défini par l'user avec le path de key défini sur fontName de type Ssortingng et value avec le nom de votre police personnalisée.

    Scénarimage de polices personnalisées

    Et c'est tout, vous n'avez même pas besoin d'importer les catégories. De cette façon, vous n'avez pas besoin d'un sharepoint vente pour chaque composant de l'interface user nécessitant une police personnalisée et vous n'avez pas besoin de le coder manuellement.

    Tenez count du fait que la police n'apparaîtra pas dans Storyboard, mais vous la verrez lors de l'exécution sur votre appareil ou votre simulateur.


    Fichiers de catégorie

    UIButton + TCCustomFont.h :

     #import <UIKit/UIKit.h> @interface UIButton (TCCustomFont) @property (nonatomic, copy) NSSsortingng* fontName; @end 

    UIButton + TCCustomFont.m :

     #import "UIButton+TCCustomFont.h" @implementation UIButton (TCCustomFont) - (NSSsortingng *)fontName { return self.titleLabel.font.fontName; } - (void)setFontName:(NSSsortingng *)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) NSSsortingng* fontName; @end 

    UILabel + TCCustomFont.m :

     #import "UILabel+TCCustomFont.h" @implementation UILabel (TCCustomFont) - (NSSsortingng *)fontName { return self.font.fontName; } - (void)setFontName:(NSSsortingng *)fontName { self.font = [UIFont fontWithName:fontName size:self.font.pointSize]; } @end 

    UITextField + TCCustomFont.h :

     #import <UIKit/UIKit.h> @interface UITextField (TCCustomFont) @property (nonatomic, copy) NSSsortingng* fontName; @end 

    UITextField + TCCustomFont.m :

     #import "UITextField+TCCustomFont.h" @implementation UITextField (TCCustomFont) - (NSSsortingng *)fontName { return self.font.fontName; } - (void)setFontName:(NSSsortingng *)fontName { self.font = [UIFont fontWithName:fontName size:self.font.pointSize]; } @end 

    Aussi téléchargeable depuis GIST et aussi en file unique .

    Dépannage

    Si vous exécutez des erreurs d'exécution parce que la propriété fontName n'est pas spécifiée, ajoutez l'indicateur -all_load sous Autres indicateurs d' éditeur de liens dans les parameters du projet pour forcer l'éditeur de liens à inclure les catégories.

    A partir de Xcode6.0, comme note de publication de Xcode6.0 :

    Interface Builder restitue les fonts iOS personnalisées embeddedes pendant la design, donnant un aperçu plus précis de l'apparence de l'application terminée, avec des dimensions correctes.

    vous pouvez définir la police d'label dans storyboard.Vous pouvez faire comme suit

    1. Obtenez votre file de police personnalisé ( .ttf, .ttc)
    2. Importer les files de fonts dans votre projet Xcode

      entrez la description de l'image ici

    3. Dans l' app-info.plist , ajoutez une key nommée Polices fournies par l'application . C'est un type de tableau, ajoutez tout votre nom de file de police au tableau, note: y compris l'extension du file.

    entrez la description de l'image ici

    1. Dans le storyboard, faites glisser une interface UILabel vers votre interface, select l'label et accédez à l' inspecteur d'attributes , click le button icône de droite de la zone de sélection de fonts . Dans le panneau contextuel, choisissez Police à Personnaliser et choisissez la famille de vous nom de la police

    entrez la description de l'image ici

    ref à

    • Notes de mise à jour de Xcode 6.0
    • WWDC 2014 Quoi de neuf dans Interface Builder
    • IOS-Keys: UIAppFonts

    C'est un bug dans XCode, présent depuis 3.x et toujours pas corrigé. Moi aussi, j'ai fait face au même problème, j'ai même essayé de l'append à mon système sans aucune chance. Voici un autre article à ce sujet. Les fonts ne s'affichent pas dans Interface Builder.

    La réponse de Monjer est la bonne. Si vous, comme moi, ne voyez pas la police ajoutée après la compilation, assurez-vous d'append la police aux phases de construction (target -> build phases -> copy bundle resources -> ajoutez vos files de police)

    La solution de redent84 était géniale!

    Je voudrais juste append une amélioration, append la catégorie sur NSObject, de sorte que vous ne devez le faire qu'une seule fois.

    NSObject + CustomFont.h

     #import <Foundation/Foundation.h> @interface NSObject (CustomFont) @property (strong, nonatomic) NSSsortingng *fontName; @property (strong, nonatomic) UIFont *font; @end 

    NSObject + CustomFont.m

     #import "NSObject+CustomFont.h" @implementation NSObject (CustomFont) @dynamic font; - (NSSsortingng *)fontName { return self.font.fontName; } - (void)setFontName:(NSSsortingng *)fontName { self.font = [UIFont fontWithName:fontName size:self.font.pointSize]; } @end 

    Aucun de ceux-ci a travaillé pour moi, mais cela a fonctionné.

     #import <UIKit/UIKit.h> @interface UILabelEx : UILabel @end #import "UILabelEx.h" #import "Constants.h" @implementation UILabelEx - (void) traitCollectionDidChange: (UITraitCollection *) previousTraitCollection { [super traitCollectionDidChange: previousTraitCollection]; self.font = [UIFont fontWithName:APP_FONT size:self.font.pointSize]; } @end