如何在ios中以编程方式使用customFont样式

时间:2015-11-07 07:55:21

标签: ios objective-c nsattributedstring uifont

我想使用 Promima Nova Semibold Bold 风格。
为此,我将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   值'

请帮我解决这个问题。
在此先感谢。

1 个答案:

答案 0 :(得分:3)

请首先打印这样的字体名称,并将您的确切粗体字体名称添加到addributed值中,因为font为nil(找不到您输入的字体),app会崩溃。因此,为粗体传递完全相同的名称。

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

例如

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

<强>输出:

Font (
    ArialMT,
    "Arial-BoldItalicMT",
    "Arial-ItalicMT",
    "Arial-BoldMT"
)