web-dev-qa-db-fra.com

Polices personnalisées dans Interface Builder

Nous sommes donc en 2014, existe-t-il encore un moyen de définir des polices personnalisées dans Interface Builder? C'est-à-dire ne le faites pas par programme, sauf pour "Polices fournies par l'application" dans le plist de l'application.

51
Jonny

Oui, Marrius a raison. Dans Xcode 6, vous n'avez pas besoin d'utiliser de logiciel supplémentaire ni de définir la police dans les fichiers de code. Ajoutez simplement vos fichiers de polices dans votre projet avec d'autres fichiers. Et le générateur d'interface affichera les polices ajoutées dans la liste des polices personnalisées.

Et le plus étonnant est que xcode 6 affiche instantanément la police appliquée dans IB. C'est le grand ajout d'Apple.

Assurez-vous également d'ajouter cette clé "Polices fournies par l'application" dans le fichier info.plist de votre projet et fournissez les noms de vos fichiers de polices pour voir l'effet sur les appareils.

70
Asif Bilal

Dans Xcode 6, nous avons des polices personnalisées disponibles dans le générateur d'interface.

Pas besoin de logiciel supplémentaire. Merci Apple!

14
Marius Popescu

Dans Xcode 6, ajoutez simplement le fichier ttf dans votre projet et utilisez-le dans le storyboard via des polices personnalisées. Si vous souhaitez directement l'utiliser dans votre code sans l'utiliser dans le storyboard, vous devez ajouter la clé "UIAppFonts" dans projectName-Info.plist.

Exemple:

<key>UIAppFonts</key> 
<array>
    <string>Signika-Bold.ttf</string>
    <string>Signika-Regular.ttf</string>
    <string>Signika-Light.ttf</string>
    <string>Signika-Semibold.ttf</string>
</array> 

juste avant la ligne </dict> dans projectName-Info.plist.

UIFont* font  = [UIFont fontWithName:@"Signika-Regular" size:25];
9
ankurkumar

C'est ma solution, rien d'autre n'a fonctionné pour moi

#import "UILabelEx.h"
#import "Constants.h"

@implementation UILabelEx

//- (void)layoutSubviews
//{
//    [super layoutSubviews];
//    // Implement font logic depending on screen size
//    self.font = [UIFont fontWithName:@"CustomFont" size:self.font.pointSize];
//}

- (void) traitCollectionDidChange: (UITraitCollection *) previousTraitCollection {
    [super traitCollectionDidChange: previousTraitCollection];

    self.font = [UIFont fontWithName:APP_FONT size:self.font.pointSize];
}
@end
1
Jules

On dirait que quelqu'un a travaillé dessus. Vous pouvez voir MoarFonts :

MoarFonts

Utilisez des polices personnalisées pour vos projets iOS directement dans Interface Builder, à la manière WYSIWYG

par Cédric Luthi " xced "

Il en coûte 10 $ , mais:

Depuis iOS 3.2, vous pouvez utiliser des polices personnalisées dans vos applications iOS en ajoutant la clé UIAppFonts Info.plist. Malheureusement, les polices personnalisées ne sont pas disponibles lors de la modification de vos fichiers xib dans Interface Builder. MoarFonts rend vos polices personnalisées disponibles directement dans Interface Builder.

MoarFonts est compatible avec Xcode 4 et Xcode 5.

1
rdurand