UIFont: cómo obtener una fuente delgada del sistema

98

UIFonttiene métodos para obtener una fuente normal ( systemFontOfSize) o una fuente en negrita ( boldSystemFontOfSize), pero ¿cómo obtener una "fuente de sistema delgada" disponible a través del guión gráfico?

Pasar "system-thin" a UIFontContructor no funciona, este constructor solo funciona para fuentes que no son del sistema.

MiguelSlv
fuente

Respuestas:

266

Puede utilizar la fuente del sistema de peso reducido:

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

Lista de pesos disponibles para San Francisco:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy
UIFontWeightBlack

pesos de fuente de san francisco

A partir de iOS 11, UIFontWeight* se cambió el nombre a UIFont.Weight.*. Puede obtener más aquí https://developer.apple.com/documentation/uikit/uifont.weight .

s1ddok
fuente
10
Solo para iOS 8.2 y posterior, gracias
Husam
32

A partir de iOS 8.2 , ahora puede usarUIFont.systemFontOfSize(_ fontSize: CGFloat, weight weight: CGFloat):

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

iOS SDK proporcionó constantes para pesos:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

Usar la fuente del sistema es mejor que crear una fuente basada en el nombre de la fuente cuando desea usar fuentes del sistema, ya que iOS puede cambiar las fuentes del sistema en iOS (como cuando lo hicieron con Helvetica Neue en iOS 7 y ahora San Francisco en iOS 9) .

Entonces, lo que sugeriría es incluir el archivo TTF de la fuente que desea, ya que use ese archivo ttf como fuente personalizada y use la fuente personalizada en su aplicación.

Esta es la razón especial por la que no me gusta Apple. Nunca vayas lo que dice Apple. Siempre hacemos lo que queremos. Apple sigue cambiando la fuente predeterminada para cada sistema operativo.

Fahim Parkar
fuente
7

Además, si desea mantener el mismo tamaño de fuente y simplemente cambiar el peso, utilice el tamaño de fuente del elemento de destino. Por ejemplo:

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

con esto, puede mantener el tamaño de fuente de la etiqueta predeterminado y simplemente cambiar el peso.

A partir de iOS 11, se cambió el nombre de UIFontWeightThin a UIFont.Weight.thin. Puede obtener más aquí https://developer.apple.com/documentation/uikit/uifont.weight .

GrandFelix
fuente
2

Rápido 4.2

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