2015-08-02 13 views
67

UIFont ha metodi per ottenere caratteri regolari (systemFontOfSize) o caratteri in grassetto (boldSystemFontOfSize), ma come ottenere un "carattere di sistema sottile" disponibile tramite lo storyboard?UIFont - come ottenere il carattere sottile del sistema

Passare "system-thin" a UIFont Il contructor non funziona, questo costruttore funziona solo con font non di sistema.

risposta

190

È possibile utilizzare font di sistema di peso sottile:

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

Elenco dei pesi disponibili per San Francisco:

UIFontWeightUltraLight 
UIFontWeightThin 
UIFontWeightLight 
UIFontWeightRegular 
UIFontWeightMedium 
UIFontWeightSemibold 
UIFontWeightBold 
UIFontWeightHeavy 
UIFontWeightBlack 

san francisco font weights

Come di iOS 11,UIFontWeight* è stato rinominato UIFont.Weight.*. Più puoi arrivare qui https://developer.apple.com/documentation/uikit/uifont.weight.

+8

Solo per ** iOS 8.2 ** e successivo, thnx – Husam

+0

non elenco completo senza UIFontWeightBlack –

30

Come di iOS 8.2, è ora possibile utilizzare UIFont.systemFontOfSize(_ fontSize: CGFloat, weight weight: CGFloat):

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

iOS SDK fornito costanti per i pesi:

UIFontWeightUltraLight 
UIFontWeightThin 
UIFontWeightLight 
UIFontWeightRegular 
UIFontWeightMedium 
UIFontWeightSemibold 
UIFontWeightBold 
UIFontWeightHeavy 

Uso carattere di sistema è meglio che creare un carattere basato sul nome del font quando si desidera utilizzare i font di sistema poiché iOS può modificare i propri font di sistema su iOS (come quando facevano con Helvetica Neue in iOS 7 e ora, San Francisco in iOS 9).

Quindi quello che vorrei suggerire è includere il file TTF del font che si desidera utilizzare come file ttf come carattere personalizzato e utilizzare il carattere personalizzato nella propria app.

Questo è il motivo speciale per cui Apple non mi piace.Maiandare ciò che Apple dice. Fai sempre quello che vogliamo.Apple continua a cambiareCarattere predefinito per ogni sistema operativo.

3

Inoltre, se si desidera mantenere le stesse dimensioni del carattere e solo modificare il peso, utilizzare la dimensione del carattere dell'elemento selezionato. Ad esempio:

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

con questo è possibile mantenere la dimensione del carattere dell'etichetta predefinita e solo modificare il peso.

A partire da iOS 11, UIFontWeightThin è stato rinominato in UIFont.Weight.thin. Più puoi arrivare qui https://developer.apple.com/documentation/uikit/uifont.weight.

Problemi correlati