69 votes

UIFont fontWithName nom de la police

Disons que vous voulez une police spécifique pour UIFont. Comment savez-vous comment elle s'appelle ?

Par exemple, si vous voulez utiliser ce code :

[someUILabelObject setFont:[UIFont fontWithName:@"American Typewriter" size:18]];

A partir d'où copier la phrase exacte "American Typewriter". Y a-t-il un fichier d'en-tête dans Xcode ?

UPDATE

J'ai aussi trouvé este pratique.

243voto

andreas-manusm Points 1096

Cela pourrait être intéressant pour vous en tant que Quick Win dans le débogueur :

(lldb) po [UIFont fontNamesForFamilyName:@"Helvetica Neue"]

(id) $1 = 0x079d8670 <__NSCFArray 0x79d8670>(
HelveticaNeue-Bold,
HelveticaNeue-CondensedBlack,
HelveticaNeue-Medium,
HelveticaNeue,
HelveticaNeue-Light,
HelveticaNeue-CondensedBold,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-BoldItalic,
HelveticaNeue-Italic
)

Novembre 2018 - Mise à jour Une nouvelle référence rapide pour " Polices personnalisées avec Xcode "par Chris Ching. Je devais mettre à jour, car il s'agit d'une publication de grande valeur pour la nouvelle façon combinée avec toutes les parties manquantes pour utiliser les polices personnalisées dans un projet.

0 votes

Très utile, j'ai utilisé : NSLog( @"%@", [UIFont fontNamesForFamilyName:@"Helvetica Neue"] ) ;

0 votes

Vous pourriez être intéressé par la mise à jour de novembre 2018 Linke ci-dessus ! "Polices de caractères personnalisées avec Xcode"

0 votes

@andreas-supersmart, votre réponse me conforte après 7 ans :-). merci

6voto

Alladinian Points 16627

En documentation para UIFont est assez clair à ce sujet :

Vous pouvez utiliser le fontNamesForFamilyName: pour récupérer les noms de polices spécifiques pour une famille de polices donnée. ( Note : C'est une méthode de classe)

Vous pouvez obtenir les noms de famille comme ceci :

NSArray *familyNames = [UIFont familyNames];

3voto

Ezra Points 1

Essayez

NSArray *familyNames = [UIFont familyNames];
[familyNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
    NSLog(@"* %@",obj);
    NSArray *fontNames = [UIFont fontNamesForFamilyName:obj];
    [fontNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
        NSLog(@"--- %@",obj);
    }];
}];

3voto

brian.clear Points 2424
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17];

2 votes

Bien que cet exemple de code puisse éventuellement répondre à la question, il serait préférable d'inclure une explication essentielle à votre réponse. En l'état actuel, cette réponse n'apporte que peu ou pas de valeur ajoutée aux futurs lecteurs.

0 votes

Je ne suis pas d'accord avec le commentateur précédent - c'est ce dont j'avais besoin.

2voto

Sam Budda Points 3446

C'est ainsi que vous obtenez tous les noms de polices dans votre projet. C'est tout ... 3 lignes de code

NSArray *fontFamilies = [UIFont familyNames];

    for (int i=0; i<[fontFamilies count]; i++)
    {
        NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]);
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X