2015-08-02 5 views
67

UIFont hat Methoden, um reguläre Schriftart (systemFontOfSize) oder Fettschrift (boldSystemFontOfSize) zu bekommen, aber wie man eine "dünne Systemschrift" über Storyboard verfügbar?UIFont - wie System dünne Schrift zu bekommen

Die Übergabe von "System-Thin" zu Contructor funktioniert nicht, dieser Konstruktor funktioniert nur für Non-System-Schriftarten.

Antwort

190

Sie Systemschriftart dünn Gewicht verwenden:

UIFont.systemFont(ofSize: 34, weight: UIFontWeightThin) 

Liste der verfügbaren Gewichte für San Francisco:

UIFontWeightUltraLight 
UIFontWeightThin 
UIFontWeightLight 
UIFontWeightRegular 
UIFontWeightMedium 
UIFontWeightSemibold 
UIFontWeightBold 
UIFontWeightHeavy 
UIFontWeightBlack 

san francisco font weights

Ab iOS 11,UIFontWeight* umbenannt wurde UIFont.Weight.*. Mehr können Sie hier bekommen https://developer.apple.com/documentation/uikit/uifont.weight.

+8

Nur für ** iOS 8.2 ** und später, Thnx – Husam

+0

nicht vollständige Liste ohne UIFontWeightBlack –

30

Ab iOS 8.2, können Sie jetzt UIFont.systemFontOfSize(_ fontSize: CGFloat, weight weight: CGFloat) verwenden:

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

iOS SDK Konstanten für Gewichte:

UIFontWeightUltraLight 
UIFontWeightThin 
UIFontWeightLight 
UIFontWeightRegular 
UIFontWeightMedium 
UIFontWeightSemibold 
UIFontWeightBold 
UIFontWeightHeavy 

Systemschriftart verwenden ist besser als eine Schaffung Schriftart, die auf dem Namen der Schriftart basiert, wenn Sie Systemschriftarten verwenden möchten, da iOS ihre Systemschriftarten auf iOS ändern kann (wie wenn sie dies taten) Helvetica Neue in iOS 7, und jetzt, San Francisco in iOS 9).

Also was ich vorschlagen würde ist, TTF-Datei der Schriftart, die Sie möchten, als diese ttf-Datei als benutzerdefinierte Schriftart verwenden und verwenden Sie die benutzerdefinierte Schriftart in Ihrer App.

Dies ist der spezielle Grund, warum ich Apple nicht mag.Niegehen, was Apple sagen. Mach immer was wir wollen.Apple weitermachenStandard Schriftart für jedes Betriebssystem.

3

Auch wenn Sie die gleiche Schriftgröße beibehalten und nur das Gewicht ändern möchten, verwenden Sie die Zielelementschriftgröße. Zum Beispiel:

demoLabel.font = UIFont.systemFont(ofSize: demoLabel.font.pointSize, weight: UIFontWeightThin) 

mit diesem können Sie Standard-Etikettenschriftgröße beibehalten und nur Gewicht ändern.

Ab iOS 11, wurde UIFontWeightThin in UIFont.Weight.thin umbenannt. Mehr können Sie hier bekommen https://developer.apple.com/documentation/uikit/uifont.weight.