Police système iPhone


98

Quel est le nom de la police système par défaut sur l'iPhone?

Je voudrais récupérer ceci pour personnaliser un fichier UIView.

Réponses:


109

Pour le plus grand plaisir des puristes de polices du monde entier, l'interface du système iPhone utilise Helvetica ou une variante de celle-ci.

L'interface système d'origine iPhone, iPhone 3G et iPhone 3GS utilise Helvetica. Comme l'a d'abord noté le toujours excellent DaringFireball, l'iPhone 4 utilise une police subtilement révisée appelée "Helvetica Neue". DaringFireball note également que ce changement est lié à 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 sortis avant l'iPhone utilisent soit Chicago, Espy Sans ou Myriad et utilisent Helvetica après la sortie de l'iPhone.

De http://www.everyipod.com/iphone-faq/iphone-who-designed-iphone-font-used-iphone-ringtones.html

Pour iOS9, il est devenu San Fransisco . Voir http://developer.apple.com/fonts pour plus d'informations.


6
Actuellement, c'est la police Helvetica Neue Regular.
Augustine

4
Pour iOS9, il est devenu San Fransisco. Voir developer.apple.com/fonts pour plus d'informations.
Freek Sanders

103

Si vous effectuez une personnalisation programmatique, ne codez pas en dur la police système. Utilisation 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 puisque iOS 9, qui a changé la police système à nouveau à San Francisco.


1
Je ne vais pas changer la police du système, c'est une mauvaise idée. Mais je le veux pour du html dans UIWebView.
SK9

Cela ne change pas la police système - cela vous donne simplement des UIFontinstances de la police système en utilisant les tailles données et renverra toujours les polices système quelles que soient les futures mises à jour iOS.
Adam Wright

La police que je vois dans mon UIWebView ne me ressemble pas à Helvetica. Je me trompe peut-être, mais définir la police de mon point de vue enlève mon doute.
SK9

"Ne codez pas en dur la police système" est un bon conseil, ou un très mauvais conseil, selon la situation. Personnellement, j'aurais aimé avoir codé en dur Helvetica... faire ça maintenant.
Dan Rosenstark

Tout à fait d'accord, ne codez pas en dur, s'il vous plaît. Cela devrait être la bonne réponse à cette question
Esteve

16

afaik iPhone utilise " Helvetica " par défaut <iOS 10


comme on le voit par d'autres réponses, cela dépend de la version iOS
ericosg

12

Rapide

Police spécifique

La définition d'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 polices 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 d'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 faire si les yeux de l'utilisateur sont mauvais et qu'il souhaite 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 ce serait ennuyeux si l'utilisateur devait le faire séparément pour chaque application sur son téléphone. Il serait plus facile de faire un seul 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 Prise en charge du type dynamique pour plus d'informations à ce sujet.

en relation


11

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


1
dans Swift sur iOS 9 je reçois .SFUIText-RegularcommesystemFont.familyName
Daniel


8

Je ne suis pas sûr qu'il existe une API pour obtenir le nom de police système par défaut. Alors je prends juste 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.


17
UIFont * font = [UIFont systemFontOfSize: 12.0]; <! - obtient la police par défaut
Steven Baughman

Il existe des méthodes plus simples. Mais +1 pour sortir des sentiers battus
Krishnabhadra

Ça a l'air mieux: P [UIFont systemFontOfSize:[UIFont labelFontSize]];Voir ma réponse ci-dessous.
Anton Gaenko

3

Voici une mise à jour pour prendre en charge iOS 7 . Il a Dynamic Font Sizemaintenant.

Pour toutes les applications qui prennent en charge le «Type dynamique», les utilisateurs peuvent sélectionner une taille de police dans iOS 7 qui fonctionne à l'échelle du système, simplement en visitant la section «Général» sous «Paramètres» et en sélectionnant «Taille de 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;

3

La catégorie UIFontSystemFonts pour UIFont ( 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 chat (étiquettes) et cela fonctionne bien lorsque j'ai besoin d'obtenir la taille des blocs de texte.

 [UIFont systemFontOfSize:[UIFont labelFontSize]];

Bon codage!


3
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 aux textes d'étiquette par défaut.


2

Rapide

Vous devez toujours utiliser les valeurs par défaut du système et ne 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 quelques polices système par défaut (normales, grasses , italiques ) avec des tailles différentes (étiquette, 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 (étiquette, bouton, autres)

Exemples:

let labelFont = UIFont.systemFont(ofSize: UIFont.labelFontSize)
let buttonFont = UIFont.systemFont(ofSize: UIFont.buttonFontSize)
let textFieldFont = UIFont.systemFont(ofSize: UIFont.systemFontSize)

0
  1. télécharger le fichier .ttf requis

  2. ajoutez le fichier .ttf sous la ressource de l'ensemble de copie, vérifiez si le fichier ttf est ajouté sous la ressource

  3. Dans info.pllist, ajoutez le nom du fichier ttf tel quel.

  4. ouvrez maintenant le livre de polices, ajoutez le fichier .ttf dans le livre de polices, sélectionnez l'icône d'information là-bas, vous trouvez le nom postscript.

  5. maintenant, donnez le nom PostScript à la place du nom de la police


0

La police par défaut pour iOS est San Francisco. Vous pouvez consulter le lien pour plus de détails

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.