UIFont - come ottenere caratteri sottili di sistema


98

UIFontha metodi per ottenere font regolari ( systemFontOfSize) o grassetto ( boldSystemFontOfSize), ma come ottenere un "font di sistema sottile" disponibile tramite storyboard?

Passando "system-thin" a UIFont Contructor non funziona, questo costruttore funziona solo per i caratteri non di sistema.

Risposte:


266

È possibile utilizzare lo spessore sottile del carattere di sistema:

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

Elenco dei pesi disponibili per San Francisco:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy
UIFontWeightBlack

pesi dei caratteri di san francisco

A partire da iOS 11, è UIFontWeight* stato rinominato UIFont.Weight.*. Puoi ottenere altro qui https://developer.apple.com/documentation/uikit/uifont.weight .


10
Solo per iOS 8.2 e versioni successive, grazie
Husam

32

A partire da iOS 8.2 , ora puoi utilizzareUIFont.systemFontOfSize(_ fontSize: CGFloat, weight weight: CGFloat):

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

iOS SDK ha fornito costanti per i pesi:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

Usare il carattere di sistema è meglio che creare un carattere basato sul nome del carattere quando si desidera utilizzare i caratteri di sistema poiché iOS può modificare i caratteri di sistema su iOS (come quando hanno fatto con Helvetica Neue in iOS 7 e ora San Francisco in iOS 9) .

Quindi quello che suggerirei è di includere il file TTF del font che desideri utilizzare quel file ttf come font personalizzato e utilizzare il font personalizzato nella tua app.

Questo è il motivo speciale per cui non mi piace Apple. Non andare mai come dice Apple. Fai sempre quello che vogliamo. Apple continua a cambiare il carattere predefinito per ogni sistema operativo.


7

Inoltre, se si desidera mantenere la stessa dimensione del carattere e modificare solo il peso, utilizzare dalla dimensione del carattere dell'elemento mirato. Per esempio:

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

con questo puoi mantenere la dimensione del carattere dell'etichetta predefinita e cambiare solo il peso.

A partire da iOS 11, UIFontWeightThin è stato rinominato UIFont.Weight.thin. Puoi ottenere altro qui https://developer.apple.com/documentation/uikit/uifont.weight .


2

Swift 4.2

 label.font = UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.thin)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.