Quel est le nom de la police système par défaut sur l'iPhone?
Je voudrais récupérer ceci pour personnaliser un UIView
.
Pour le plus grand plaisir des puristes des polices du monde entier, l'interface système iPhone utilise Helvetica ou une variante de celui-ci.
Helvetica est utilisé avec l’interface système originale pour iPhone, iPhone 3G et iPhone 3GS. Comme le remarquait tout d'abord l'excellent DaringFireball, l'iPhone 4 utilise une police subtilement modifiée, appelée "Helvetica Neue". DaringFireball note également que cette modification est liée à l'écran de l'iPhone 4 plutôt qu'au système d'exploitation iOS 4 et que les anciens modèles d'iPhone exécutant iOS 4 utilisent toujours Helvetica comme police système.
les modèles d'iPod publiés avant l'iPhone utilisent Chicago, Espy Sans ou Myriad et utilisent Helvetica après la sortie de l'iPhone.
De http://www.everyipod.com/iphone-faq/iphone-who-design-iphone-font-used-iphone-ringtones.html
Pour iOS9 , il est devenu San Francisco . Voir http://developer.Apple.com/fonts pour plus d'informations.
Si vous effectuez une personnalisation programmatique, ne codez pas en dur la police système. Utilisez UIFont systemFontOfSize:
, UIFont boldSystemFontOfSize:
et UIFont italicSystemFontOfSize
( documentation Apple ).
Cela est devenu particulièrement pertinent depuis iOS 7, qui a changé la police système en Helvetica Neue.
Cela est devenu super particulièrement pertinent depuis iOS 9, qui a à nouveau modifié la police système à San Francisco.
afaik iPhone utilise "Helvetica" par défaut <iOS 10
Police spécifique
Définir une police spécifique dans Swift se fait comme suit:
let myFont = UIFont(name: "Helvetica", size: 17)
Si vous ne connaissez pas le nom, vous pouvez obtenir une liste des noms de police disponibles, comme ceci:
print(UIFont.familyNames())
Ou une liste encore plus détaillée comme celle-ci:
for familyName in UIFont.familyNames() {
print(UIFont.fontNamesForFamilyName(familyName))
}
Mais la police système change de version en version iOS. Il serait donc préférable d’obtenir la police système de manière dynamique.
Police système
let myFont = UIFont.systemFontOfSize(17)
Mais nous avons la taille codée en dur. Que se passe-t-il si les yeux de l'utilisateur sont mauvais et qu'ils veulent agrandir la police? Bien sûr, vous pouvez définir un paramètre dans votre application pour que l'utilisateur modifie la taille de la police, mais cela serait gênant si l'utilisateur devait le faire séparément pour chaque application de son téléphone. Il serait plus facile de faire un changement dans les paramètres généraux ...
Police dynamique
let myFont = UIFont.preferredFont(forTextStyle: .body)
Ah, nous avons maintenant la police système à la taille choisie par l'utilisateur pour le style de texte avec lequel nous travaillons. C'est la méthode recommandée pour définir la police. Voir Type dynamique pris en charge pour plus d'informations à ce sujet.
Vous pouvez toujours utiliser
UIFont *systemFont = [UIFont systemFontOfSize:12];
NSLog(@"what is it? %@ %@", systemFont.familyName, systemFont.fontName);
La réponse est:
jusqu'à iOS 6
Helvetica Helvetica
iOS 7
.Helvetica Neue Interface .HelveticaNeueInterface-M3
mais vous pouvez simplement utiliser Helvetica Neue
Je ne suis pas sûr qu'il existe une API pour obtenir le nom de la police système par défaut. Donc, je viens de recevoir le nom comme ceci:
//get system default font
UILabel *label = [[UILabel alloc] init];
fontname = label.font.fontName;
[label release];
Ça a l'air stupide mais ça marche.
Voici une mise à jour pour prendre en charge iOS 7 . Il a Dynamic Font Size
maintenant.
Pour toutes les applications prenant en charge le "Type dynamique", les utilisateurs peuvent sélectionner une taille de police sous iOS 7 compatible avec l'ensemble du système, simplement en visitant la section "Général" sous "Paramètres" et en sélectionnant "Taille de la police".
_UIFont *dynamicFont = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
_
Et la liste des constantes, une explication détaillée est ici
_NSString *const UIFontTextStyleHeadline;
NSString *const UIFontTextStyleSubheadline;
NSString *const UIFontTextStyleBody;
NSString *const UIFontTextStyleFootnote;
NSString *const UIFontTextStyleCaption1;
NSString *const UIFontTextStyleCaption2;
_
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];
Cela vous donnera la police système avec la taille de police système par défaut appliquée pour les textes d'étiquette par défaut.
La catégorie IFontSystemFonts pour IFont ( UIInterface.h ) fournit plusieurs tailles prédéfinies pratiques.
@interface UIFont (UIFontSystemFonts)
+ (CGFloat)labelFontSize;
+ (CGFloat)buttonFontSize;
+ (CGFloat)smallSystemFontSize;
+ (CGFloat)systemFontSize;
@end
Je l'utilise pour les messages de discussion (étiquettes) et cela fonctionne bien lorsque j'ai besoin d'obtenir la taille de blocs de texte.
[UIFont systemFontOfSize:[UIFont labelFontSize]];
Bonne codage!
rapide
Vous devez toujours utiliser les valeurs par défaut du système et non pas coder en dur le nom de la police, car la police par défaut peut être modifiée par Apple à tout moment.
Il existe deux polices système par défaut (normales, gras, italiques ) de tailles différentes (libellé, bouton, autres). :
let font = UIFont.systemFont(ofSize: UIFont.systemFontSize)
let font2 = UIFont.boldSystemFont(ofSize: UIFont.systemFontSize)
let font3 = UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)
sachez que la taille de police par défaut dépend de la vue cible (libellé, bouton, autres)
Exemples:
let labelFont = UIFont.systemFont(ofSize: UIFont.labelFontSize)
let buttonFont = UIFont.systemFont(ofSize: UIFont.buttonFontSize)
let textFieldFont = UIFont.systemFont(ofSize: UIFont.systemFontSize)
La police par défaut pour iOS est San Francisco. Vous pouvez vous référer au lien pour plus de détails
télécharger le fichier .ttf requis
ajoutez le fichier .ttf sous copier la ressource, vérifiez si le fichier ttf est ajouté sous ressource
Dans info.pllist, ajoutez le nom du fichier ttf tel quel.
maintenant, ouvrez le livre de polices, ajoutez le fichier .ttf dans le livre de polices, sélectionnez l'icône d'information là où vous trouvez le nom PostScript.
donne maintenant le nom postscript à la place du nom de la police