it-swarm.com.ru

UIFont - как получить системный тонкий шрифт

У UIFont есть методы для получения обычного шрифта (systemFontOfSize) или полужирного шрифта (boldSystemFontOfSize), но как получить «тонкий системный шрифт», доступный через раскадровку?

Передача "system-thin" в UIFont Contructor не работает, этот конструктор работает только для несистемных шрифтов. 

84
ByteArtisan

Вы можете использовать системный шрифт тонким весом:

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

Список доступных весов для Сан-Франциско:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy
UIFontWeightBlack

san francisco font weights

Начиная с iOS 11,UIFontWeight* был переименован в UIFont.Weight.*. Больше вы можете получить здесь https://developer.Apple.com/documentation/uikit/uifont.weight .

238
s1ddok

Начиная с iOS 8.2, теперь вы можете использовать UIFont.systemFontOfSize(_ fontSize: CGFloat, weight weight: CGFloat):

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

iOS SDK предоставляет константы для весов:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

Использование системного шрифта лучше, чем создание шрифта на основе имени шрифта, когда вы хотите использовать системные шрифты, поскольку iOS может изменять свои системные шрифты на iOS (как это было с Helvetica Neue в iOS 7, а теперь и в Сан-Франциско в iOS 9). ,.

Итак, я бы предложил включить файл TTF того шрифта, который вам нужен, так как использовать этот файл ttf как собственный шрифт и использовать этот шрифт в своем приложении.

Это особая причина, почему я не люблю Apple.Никогдаидти, что говорит Apple. Всегда делай то, что мы хотим.Apple продолжает изменятьШрифт по умолчанию для каждой ОС.

31
Fahim Parkar

Также, если вы хотите сохранить одинаковый размер шрифта и просто изменить вес, используйте размер шрифта целевого элемента. Например:

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

при этом вы можете сохранить размер шрифта метки по умолчанию и просто изменить вес.

Начиная с iOS 11, UIFontWeightThin был переименован в UIFont.Weight.thin. Больше вы можете получить здесь 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