[UIFont familyName]
est pris en charge depuis iPhone OS 2.0 (avant 2.0, les applications tierces n'étaient pas autorisées sur l'iPhone ou l'iPod touch). Je l'utiliserais donc pour vérifier si une famille de polices existe sur l'appareil actuel et, si elle n'existe pas, j'utiliserais une police de secours appropriée pour cette version d'iOS. Voici la liste de John Gruber des polices de l'iPhone original en 2007 (comparée aux polices de Mac OS X de l'époque). Je ne les ai pas toutes vérifiées, mais les polices iOS que j'ai vérifiées sont toujours présentes dans iOS 5 :
Voici un exemple d'utilisation de [UIFont familyName]
:
NSLog (@"Font families: %@", [UIFont familyNames]);
Cela produira une liste comme celle-ci :
Familles de polices : ( Thonburi, "Snell Roundhand", "Academy Engraved LET", ... et cetera.
Une fois que vous connaissez le nom de famille, vous pouvez utiliser la fonction UIFont
méthode de classe fontNamesForFamilyName
pour obtenir un tableau NSArray contenant les noms de toutes les polices de la famille. Par exemple :
NSLog (@"Courier New family fonts: %@", [UIFont fontNamesForFamilyName:@"Courier New"]);
Cela produira une liste comme celle-ci :
Polices de la famille Courier New : ( CourierNewPSMT, "CourierNewPS-BoldMT", "CourierNewPS-BoldItalicMT", "CourierNewPS-ItalicMT )
L'exemple de code suivant imprime une liste de chaque police de chaque famille sur le périphérique actuel :
NSArray *fontFamilies = [UIFont familyNames];
for (int i = 0; i < [fontFamilies count]; i++)
{
NSString *fontFamily = [fontFamilies objectAtIndex:i];
NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
NSLog (@"%@: %@", fontFamily, fontNames);
}
Pour plus d'informations, consultez le document de référence du développeur iOS pour l'outil de gestion de l'environnement. UIFont
méthodes de classe noms de famille et FontNamesForFamilyName : .