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.

MiguelSlv
quelle

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 .

s1ddok
quelle
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.

Fahim Parkar
quelle
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 .

GrandFelix
quelle
2

Swift 4.2

 label.font = UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.thin)
Pranit
quelle