wake-up-neo.com

UIFont - So erhalten Sie eine Systemschriftart

UIFont hat Methoden, um reguläre Schriftarten (systemFontOfSize) oder fette Schriftarten (boldSystemFontOfSize) zu erhalten, aber wie erhält man eine "dünne Systemschriftart", die über das Storyboard verfügbar ist?

Die Übergabe von "system-thin" an UIFont Contructor funktioniert nicht. Dieser Konstruktor funktioniert nur für Nicht-System-Schriftarten. 

84
ByteArtisan

Sie können die 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 font weights

Ab iOS 11 wurdeUIFontWeight* in UIFont.Weight.* umbenannt. Weitere Informationen erhalten Sie hier https://developer.Apple.com/documentation/uikit/uifont.weight .

238
s1ddok

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

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

iOS SDK stellte Konstanten für Gewichte bereit:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

Die Verwendung von Systemschriftarten ist besser als die Erstellung einer Schrift basierend auf dem Schriftnamen, 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, die TTF-Datei der gewünschten Schriftart einzuschließen und 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. Niemals geh was Apple sagen. Tu immer was wir wollen. Apple wechselt weiter Standardschriftart für jedes Betriebssystem.

31
Fahim Parkar

Wenn Sie die gleiche Schriftgröße beibehalten und nur das Gewicht ändern möchten, verwenden Sie die Zielgröße für die Elementgröße. Zum Beispiel:

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

damit können Sie die Standard-Schriftgröße der Beschriftung beibehalten und das Gewicht einfach ändern.

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

7
GrandFelix

Swift 4.2

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