Как программно использовать стиль customFont в ios

Я хочу использовать стиль Semibold и Bold для Proxima Nova.
Для этого я добавил Proxima Nova, Proxima Nova Semibold и шрифты Proxima Nova Bold в ресурсы моего приложения.
Я сделал правильную запись в файле info.plist, а также убедился в ресурсах Copy Bundle. Я использую эти шрифты так, как показано ниже.

[attributedString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Proxima Nova" size:12.0] range:NSMakeRange(0, storypart1.length-1)];

Это работает нормально для меня.
Но когда я хочу использовать стиль Semibold и Bold одного и того же шрифта, я получаю сообщение об ошибке. Способ, которым я пытался использовать стиль Semibold и Bold, выглядит следующим образом.

[attrString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Proxima Nova-Semibold" size:12.0] range:NSMakeRange(0, storypart1.length-1)];

и

[attrString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Proxima Nova Semibold" size:12.0] range:NSMakeRange(0, storypart1.length-1)];

Но в обоих случаях я получаю следующую ошибку.

*** Завершение работы приложения из-за необработанного исключения "NSInvalidArgumentException", причина: "NSConcreteMutableAttributedString addAttribute:value:range:: nil value"

Пожалуйста, помогите мне решить эту проблему.
Заранее спасибо.


person Mrugesh Tank    schedule 07.11.2015    source источник
comment
Вы пытались зарегистрировать имена шрифтов?   -  person Cheng-Yu Hsu    schedule 07.11.2015


Ответы (1)


Пожалуйста, сначала напечатайте имя своего шрифта, как это, и укажите точное имя полужирного шрифта в добавленном значении, и приложение получает сбой из-за того, что шрифт равен нулю (шрифт не найден, который вы передали). Так что передайте точно такое же имя для жирного шрифта.

NSLog(@"Font %@",[UIFont fontNamesForFamilyName:@"Proxima Nova"]);

Например

NSLog(@"Font %@",[UIFont fontNamesForFamilyName:@"Arial"]);

Вывод:

Font (
    ArialMT,
    "Arial-BoldItalicMT",
    "Arial-ItalicMT",
    "Arial-BoldMT"
)
person Dharmbir Singh    schedule 07.11.2015
comment
Спасибо за это. Я использовал это в другом проекте, но я забыл это реализовать. - person Mrugesh Tank; 07.11.2015