Как установить текстовый шрифт как System Thin в Swift?

Я хочу установить текст метки как System Thin. Читал в StackOverflow и нашел такой ответ:

labelDescriptionView.font = UIFont(name: "System-Thin", size: 15.0)

но это не сработало. Как я могу улучшить свой код и программно создать стиль тонкого шрифта?


person Orkhan Alizade    schedule 30.11.2015    source источник
comment
Где вы это нашли?   -  person Martin R    schedule 30.11.2015
comment
@MartinR stackoverflow.com/questions/22091367/ здесь   -  person Orkhan Alizade    schedule 30.11.2015
comment
@MartinR о, я неправильно понял ответ =/   -  person Orkhan Alizade    schedule 30.11.2015
comment
@OrkhanAlizade уже задано, установите имя шрифта HelveticaNeue-Thin, поскольку iOS использует HelveticaNeue в качестве шрифта по умолчанию. В iOS не указан шрифт System-Thin, только жирный, курсивный и обычный для системного шрифта.   -  person Dipen Panchasara    schedule 30.11.2015
comment
@DipenPanchasara, но я могу установить его на «Тонкий» в инспекторе файлов.   -  person Orkhan Alizade    schedule 30.11.2015
comment
@DipenPanchasara с iOS 9 HelveticaNeue больше не является шрифтом по умолчанию!   -  person rckoenes    schedule 30.11.2015
comment
@rckoenes я знаю, что он удален в iOS 9, но до этого он был доступен. Хотя вы можете проверить доступность шрифта для версии iOS здесь @OrkhanAlizade для установки тонкого шрифта, в iOS нет специального метода, такого как boldSystemFontOfSize , хотя вы можете установить его явно, используя метод [UIFont fontWithName:@].   -  person Dipen Panchasara    schedule 30.11.2015
comment
Я хочу Тонкий шрифт, ребята =/   -  person Orkhan Alizade    schedule 30.11.2015
comment
@OrkhanAlizade установил это программно.   -  person Dipen Panchasara    schedule 30.11.2015
comment
@DipenPanchasara мой вопрос звучит именно так. Как его настроить программно?   -  person Orkhan Alizade    schedule 30.11.2015
comment
@OrkhanAlizade: Вы пробовали искать в Google тонкий системный шрифт iOS? На поиск решения у меня ушло меньше минуты.   -  person Martin R    schedule 30.11.2015


Ответы (2)


Шрифт system в Interface Builder является шрифтом ОС по умолчанию, это не тот шрифт, который можно получить по его имени. Для системного шрифта Apple предоставляет следующие методы:

+ (UIFont *)systemFontOfSize:(CGFloat)fontSize;
+ (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize;
+ (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize;

К ним не относятся тонкие версии, кроме iOS 8.2 и более поздних версий, которые вы можете использовать:

+ (UIFont *)systemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight;

Где можно пройти: в качестве весов:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

Таким образом, тонкий системный шрифт будет:

UIFont *thinFont = [UIFont systemFontOfSize:15 weight:UIFontWeightThin];
person rckoenes    schedule 30.11.2015

Если вы используете iOS 8.2 или выше, вы можете использовать это;

label.font = UIFont.systemFontOfSize(15, weight: UIFontWeightThin)

Для предыдущих версий просто используйте HelveticaNeue-Thin в качестве шрифта.

Изменить: для iOS 14 это:

label.font = UIFont.systemFont(ofSize: 14, weight: .light)
person ujell    schedule 30.11.2015