iPhone-Systemschriftart


98

Wie heißt die Standard-Systemschriftart auf dem iPhone?

Ich möchte dies zum Anpassen von a abrufen UIView.

Antworten:


109

Zur Freude von Schriftpuristen überall verwendet die iPhone-Systemschnittstelle Helvetica oder eine Variante davon.

Die ursprüngliche Systemschnittstelle für iPhone, iPhone 3G und iPhone 3GS verwendet Helvetica. Wie der immer ausgezeichnete DaringFireball zum ersten Mal bemerkte, verwendet das iPhone 4 eine subtil überarbeitete Schriftart namens "Helvetica Neue". DaringFireball stellt außerdem fest, dass diese Änderung eher mit dem iPhone 4-Display als mit dem iOS 4-Betriebssystem zusammenhängt und ältere iPhone-Modelle mit iOS 4 weiterhin Helvetica als Systemschriftart verwenden.

Vor dem iPhone veröffentlichte iPod-Modelle verwenden entweder Chicago, Espy Sans oder Myriad und nach der Veröffentlichung des iPhone Helvetica.

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

Für iOS9 wurde es in San Francisco geändert . Weitere Informationen finden Sie unter http://developer.apple.com/fonts .


6
Derzeit ist es Helvetica Neue Regular Schriftart.
Augustine

4
Für iOS9 wurde es in San Francisco geändert. Weitere Informationen finden Sie unter developer.apple.com/fonts .
Freek Sanders

103

Wenn Sie programmgesteuert anpassen, codieren Sie die Systemschriftart nicht fest. Verwendung UIFont systemFontOfSize:, UIFont boldSystemFontOfSize:und UIFont italicSystemFontOfSize( Apple - Dokumentation ).

Dies ist besonders relevant seit iOS 7, das die Systemschriftart in Helvetica Neue geändert hat.

Dies hat sich Super besonders relevant , da iOS 9, die die Systemschriftart geändert wieder nach San Francisco.


1
Ich werde die Systemschriftart nicht ändern, das ist eine schlechte Idee. Aber ich möchte es für etwas HTML in UIWebView.
SK9

Dadurch wird die Systemschriftart nicht geändert. Sie erhalten lediglich UIFontInstanzen der Systemschriftart in den angegebenen Größen und geben die Systemschriftarten unabhängig von zukünftigen iOS-Updates immer zurück.
Adam Wright

Die Schriftart, die ich in meiner UIWebView sehe, sieht für mich nicht wie Helvetica aus. Ich könnte mich irren, aber das Festlegen der Schriftart für meine Ansicht beseitigt meine Zweifel.
SK9

"Codieren Sie die Systemschriftart nicht hart" ist je nach Situation ein guter oder ein wirklich schlechter Rat. Persönlich wünschte ich, ich hätte hartcodiert Helvetica... das jetzt zu tun.
Dan Rosenstark

Stimme voll und ganz zu, bitte nicht fest codieren. Dies sollte die richtige Antwort auf diese Frage sein
Esteve

16

afaik iPhone verwendet standardmäßig " Helvetica " <iOS 10


Wie aus anderen Antworten hervorgeht, hängt es von der iOS-Version ab
Ericosg

12

Schnell

Spezifische Schriftart

Das Festlegen einer bestimmten Schriftart in Swift erfolgt folgendermaßen:

let myFont = UIFont(name: "Helvetica", size: 17)

Wenn Sie den Namen nicht kennen, können Sie eine Liste der verfügbaren Schriftnamen wie folgt abrufen:

print(UIFont.familyNames())

Oder eine noch detailliertere Liste wie diese:

for familyName in UIFont.familyNames() {
    print(UIFont.fontNamesForFamilyName(familyName))
}

Die Systemschriftart ändert sich jedoch von Version zu Version von iOS. Daher ist es besser, die Systemschrift dynamisch abzurufen.

Systemschriftart

let myFont = UIFont.systemFontOfSize(17)

Aber wir haben die Größe fest codiert. Was ist, wenn die Augen des Benutzers schlecht sind und er die Schrift größer machen möchte? Natürlich können Sie in Ihrer App eine Einstellung vornehmen, damit der Benutzer die Schriftgröße ändert. Dies wäre jedoch ärgerlich, wenn der Benutzer dies für jede einzelne App auf seinem Telefon separat tun müsste. Es wäre einfacher, nur eine Änderung an den allgemeinen Einstellungen vorzunehmen ...

Dynamische Schriftart

let myFont = UIFont.preferredFont(forTextStyle: .body)

Ah, jetzt haben wir die Systemschrift in der vom Benutzer gewählten Größe für den Textstil, mit dem wir arbeiten. Dies ist die empfohlene Methode zum Festlegen der Schriftart. Weitere Informationen hierzu finden Sie unter Unterstützung des dynamischen Typs .

verbunden


11

Sie können immer verwenden

UIFont *systemFont = [UIFont systemFontOfSize:12];
NSLog(@"what is it? %@ %@", systemFont.familyName, systemFont.fontName);

Die Antwort ist:

Bis zu iOS 6

 Helvetica Helvetica

iOS 7

.Helvetica Neue Interface .HelveticaNeueInterface-M3

aber du kannst es einfach benutzen Helvetica Neue


1
in Swift auf iOS 9 bekomme ich .SFUIText-RegularalssystemFont.familyName
Daniel


8

Ich bin nicht sicher, ob es eine API gibt, um den Standardnamen der Systemschriftart zu erhalten. Also bekomme ich einfach den Namen so:

    //get system default font
    UILabel *label = [[UILabel alloc] init];        
    fontname = label.font.fontName;
    [label release];

Sieht dumm aus, aber es funktioniert.


17
UIFont * font = [UIFont systemFontOfSize: 12.0]; <! - erhält Standardschriftart
Steven Baughman

Es gibt einfachere Methoden. Aber +1, um über den Tellerrand hinaus zu denken
Krishnabhadra

Es sieht besser aus: P [UIFont systemFontOfSize:[UIFont labelFontSize]];Siehe meine Antwort unten.
Anton Gaenko

3

Hier ist ein Update zur Unterstützung von iOS 7 . Es hat Dynamic Font Sizejetzt.

Für alle Apps, die "Dynamic Type" unterstützen, können Benutzer eine systemweite Schriftgröße in iOS 7 auswählen, indem sie einfach den Abschnitt "Allgemein" unter "Einstellungen" aufrufen und "Schriftgröße" auswählen.

UIFont *dynamicFont  = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];

Und Konstantenliste, ausführliche Erklärung finden Sie hier

NSString *const UIFontTextStyleHeadline;
NSString *const UIFontTextStyleSubheadline;
NSString *const UIFontTextStyleBody;
NSString *const UIFontTextStyleFootnote;
NSString *const UIFontTextStyleCaption1;
NSString *const UIFontTextStyleCaption2;

3

Die Kategorie UIFontSystemFonts für UIFont ( UIInterface.h ) bietet mehrere praktische vordefinierte Größen.

@interface UIFont (UIFontSystemFonts)
 + (CGFloat)labelFontSize;
 + (CGFloat)buttonFontSize;
 + (CGFloat)smallSystemFontSize;
 + (CGFloat)systemFontSize;
@end 

Ich benutze es für Chat-Nachrichten (Labels) und es funktioniert gut, wenn ich die Größe von Textblöcken erhalten muss.

 [UIFont systemFontOfSize:[UIFont labelFontSize]];

Viel Spaß beim Codieren!


3
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];

Dadurch erhalten Sie die Systemschriftart mit der Standard-Systemschriftgröße, die standardmäßig für die Beschriftungstexte angewendet wird.


2

Schnell

Sie sollten immer die Systemstandards verwenden und den Schriftnamen nicht fest codieren, da die Standardschrift von Apple jederzeit geändert werden kann.

Es gibt einige Systemstandardschriftarten (normal, fett , kursiv ) mit unterschiedlichen Größen (Beschriftung, Schaltfläche, andere):

let font = UIFont.systemFont(ofSize: UIFont.systemFontSize)
let font2 = UIFont.boldSystemFont(ofSize: UIFont.systemFontSize)
let font3 = UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)

Beaware, dass die Standardschriftgröße von der Zielansicht abhängt (Beschriftung, Schaltfläche, andere)

Beispiele:

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

0
  1. Download der erforderlichen .ttf-Datei

  2. Fügen Sie die .ttf-Datei unter Kopierpaketressource hinzu, und überprüfen Sie, ob die ttf-Datei unter Ressource hinzugefügt wurde

  3. Fügen Sie in info.pllist den Namen der ttf-Datei so hinzu, wie er ist.

  4. Öffnen Sie nun das Schriftbuch. Fügen Sie die .ttf-Datei in das Schriftbuch ein und wählen Sie das Informationssymbol aus. Dort finden Sie den Namen des Postskripts.

  5. Geben Sie nun den Postscript-Namen anstelle des Schriftartnamens an


0

Die Standardschriftart für iOS ist San Francisco. Sie können den Link für weitere Details verweisen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.