UIFont - wie man eine dünne Systemschrift erhält


97

UIFontGibt es Methoden, um normale Schriftarten ( systemFontOfSize) oder fette Schriftarten ( boldSystemFontOfSize) zu erhalten, aber wie kann eine "Thin System-Schriftart" über das Storyboard verfügbar gemacht werden?

Das Übergeben von "system-thin" an UIFontContructor funktioniert nicht. Dieser Konstruktor funktioniert nur für Nicht-System-Schriftarten.

Antworten:


265

Sie können Systemschriftart Thin Weight 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 Schriftgewichte

Ab iOS 11 UIFontWeight* wurde umbenannt in UIFont.Weight.*. Weitere Informationen finden Sie hier https://developer.apple.com/documentation/uikit/uifont.weight .


10
Nur für iOS 8.2 und höher, danke
Husam

32

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

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

Das iOS SDK lieferte Konstanten für Gewichte:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

Die Verwendung von Systemschriftarten ist besser als das Erstellen einer Schriftart basierend auf dem Schriftartnamen, wenn Sie Systemschriftarten verwenden möchten, da iOS die Systemschriftarten unter iOS ändern kann (wie bei Helvetica Neue in iOS 7 und jetzt in San Francisco in iOS 9). .

Ich würde also vorschlagen, eine TTF-Datei der gewünschten Schriftart einzuschließen, um diese ttf-Datei als benutzerdefinierte Schriftart zu verwenden und die benutzerdefinierte Schriftart in Ihrer App zu verwenden.

Dies ist der besondere Grund, warum ich Apple nicht mag. Gehen Sie niemals , was Apple sagt. Mach immer was wir wollen. Apple ändert weiterhin die Standardschriftart für jedes Betriebssystem.


7

Auch wenn Sie die gleiche Schriftgröße beibehalten und nur die Gewichtung ändern möchten, verwenden Sie die Schriftgröße des Zielelements. Beispielsweise:

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

Mit dieser Option können Sie die Standardschriftgröße des Etiketts beibehalten und nur die Größe ändern.

Ab iOS 11 wurde UIFontWeightThin in umbenannt UIFont.Weight.thin. Weitere Informationen finden Sie hier https://developer.apple.com/documentation/uikit/uifont.weight .


2

Swift 4.2

 label.font = UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.thin)
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.