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

99

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

Передача "тонкой системы" в UIFontContructor не работает, этот конструктор работает только для несистемных шрифтов.

MiguelSlv
источник

Ответы:

267

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

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

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

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy
UIFontWeightBlack

шрифт сан-франциско

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

s1ddok
источник
10
Только для iOS 8.2 и новее, спасибо
Husam
32

Начиная с 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 продолжает менять шрифт по умолчанию для каждой ОС.

Фахим Паркар
источник
7

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

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

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

Начиная с iOS 11, UIFontWeightThin был переименован в UIFont.Weight.thin. Более подробную информацию вы можете найти здесь https://developer.apple.com/documentation/uikit/uifont.weight .

ГрандФеликс
источник
2

Swift 4.2

 label.font = UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.thin)
Пранит
источник