police système iPhone
Question
Quel est le nom de la police du système par défaut sur l'iPhone?
Je voudrais récupérer ce pour la personnalisation d'un UIView
.
La solution
Pour le plus grand bonheur des puristes de police partout, le système iPhone interface utilise Helvetica ou un variant de celui-ci.
L'iPhone original, iPhone 3G et utilisation de l'interface du système iPhone 3GS Helvetica. Comme première noté le toujours excellent DaringFireball, la iPhone 4 utilise une police subtilement révisée appelé "Helvetica Neue." DaringFireball note également que cette le changement est lié à l'iPhone 4 afficher au lieu de l'iOS 4 système d'exploitation et plus iPhone modèles fonctionnant sous iOS 4 Utilisation encore Helvetica comme la police système.
modèles iPod libérés avant la utiliser l'iPhone soit Chicago, Espy Sans, ou Myriad et l'utilisation Helvetica après la sortie de l'iPhone.
De http: / /www.everyipod.com/iphone-faq/iphone-who-designed-iphone-font-used-iphone-ringtones.html
iOS9 il a changé à San Fransisco . Voir http://developer.apple.com/fonts pour plus d'informations.
Autres conseils
Si vous faites la personnalisation programatic, ne pas coder en dur la police système. Utilisez UIFont systemFontOfSize:
, UIFont boldSystemFontOfSize:
et UIFont italicSystemFontOfSize
( documentation Apple de)
Cela est devenu particulièrement pertinent depuis iOS 7, qui a changé la police système Helvetica Neue.
est devenu super particulièrement pertinent puisque iOS 9, qui a changé la police système nouveau à San Francisco.
iPhone utilise "afaik Helvetica " par défaut
Swift
Police spécifique
Définition d'une police spécifique à Swift est fait comme ceci:
let myFont = UIFont(name: "Helvetica", size: 17)
Si vous ne connaissez pas le nom, vous pouvez obtenir une liste des noms des polices disponibles comme ceci:
print(UIFont.familyNames())
Ou une liste encore plus détaillée comme suit:
for familyName in UIFont.familyNames() {
print(UIFont.fontNamesForFamilyName(familyName))
}
Mais les changements de police du système de la version à la version d'iOS. Il serait donc préférable d'obtenir dynamiquement la police système.
Police système
let myFont = UIFont.systemFontOfSize(17)
Mais nous avons codé en dur de la taille. Et si les yeux de l'utilisateur sont mauvais et ils veulent faire de la police plus grande? Bien sûr, vous pouvez définir un paramètre dans votre application pour l'utilisateur de changer la taille de la police, mais ce serait ennuyeux si l'utilisateur devait le faire séparément pour chaque application unique sur leur 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 de l'utilisateur pour le style de texte nous travaillons avec. Ceci est la méthode recommandée pour le réglage de la police. Voir Soutenir Type Dynamique pour plus d'informations sur ce sujet.
Related
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 ya un api pour obtenir le nom de la police par défaut du système. Donc, je viens d'obtenir le nom comme celui-ci:
//get system default font
UILabel *label = [[UILabel alloc] init];
fontname = label.font.fontName;
[label release];
On dirait stupide, mais cela fonctionne.
Voici quelques mise à jour pour soutenir iOS 7 . Il a Dynamic Font Size
maintenant.
Pour tout et toutes les applications que le soutien « Type dynamique », les utilisateurs peuvent sélectionner une taille de la police dans iOS 7 qui fonctionne l'ensemble du système, simplement en visitant le 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, explication détaillée ici
NSString *const UIFontTextStyleHeadline;
NSString *const UIFontTextStyleSubheadline;
NSString *const UIFontTextStyleBody;
NSString *const UIFontTextStyleFootnote;
NSString *const UIFontTextStyleCaption1;
NSString *const UIFontTextStyleCaption2;
Catégorie UIFontSystemFonts UIFont ( UIInterface.h ) propose plusieurs tailles prédéfinies pratiques.
@interface UIFont (UIFontSystemFonts)
+ (CGFloat)labelFontSize;
+ (CGFloat)buttonFontSize;
+ (CGFloat)smallSystemFontSize;
+ (CGFloat)systemFontSize;
@end
Je l'utilise pour les messages du chat (étiquettes) et il travaille bien quand je dois obtenir la taille des blocs de texte.
[UIFont systemFontOfSize:[UIFont labelFontSize]];
Bonne programmation!
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];
Cela vous donnera la police système avec la taille de la police par défaut du système appliqué pour les textes de l'étiquette par défaut.
Swift
Vous devriez toujours utiliser les paramètres par défaut du système et non de coder en dur le nom de la police parce que la police par défaut peut être modifiée par Apple à tout moment.
Il y a deux polices par défaut du système (normal, gras , italique ) avec différentes tailles (étiquette, bouton, autres):
let font = UIFont.systemFont(ofSize: UIFont.systemFontSize)
let font2 = UIFont.boldSystemFont(ofSize: UIFont.systemFontSize)
let font3 = UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)
beaware que la taille de la 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)
-
télécharger le fichier requis .ttf
-
ajouter le fichier .ttf sous ressource faisceau de copie, vérifiez si le fichier TTF est ajouté sous ressource
-
info.pllist ajouter le nom du fichier TTF tel qu'il est.
-
ouvrir le livre de police ajouter le fichier .ttf dans le livre de police, sélectionnez Icône d'information, il vous trouvez le nom postscript.
-
donne maintenant le nom Postscript au lieu de nom de la police