将粗体字体设置为NSString iOS

时间:2015-09-18 20:02:34

标签: ios fonts nsstring nsattributedstring nsmutablestring

我已将2个字体文件导入到项目中的资源组中,并将它们添加到我的plist文件中:

pt-sans.narrow-bold.ttf和PT_Sans-Narrow-Web-Bold.ttf

我想将粗体字体设置为属性字符串,但无法找到我的字体,我收到此错误:

(UIFont*) nil

这就是我设置字体的方式:

UIFont *font_bold=[UIFont fontWithName:@"PT Sans Narrow Bold" size:14.0f];

它必须是此系列的字体。任何想法,我做错了什么?

2 个答案:

答案 0 :(得分:0)

您可以通过将此字体添加到didFinishLaunchingWithOptions

来检查字体是否可访问
    NSArray *fontFamilies = [UIFont familyNames];

for (int i = 0; i < [fontFamilies count]; i++)
{
    NSString *fontFamily = [fontFamilies objectAtIndex:i];
    NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
    NSLog (@"%@: %@", fontFamily, fontNames);
}

正如@ mikle94所说,帽子可能是你的问题。

答案 1 :(得分:0)

如果我们想在我们的应用程序中使用尚未存在的字体,我们应该注意几件事情,为了不做同样的错误,之后就想知道“出了什么问题” ,我的代码写得很完美“。

  1. 将.otf或.ttf中的字体复制到项目中。

  2. 将其添加到.plist文件中。在plist文件中添加'由应用程序提供的字体'键,在第0项中复制已导入项目的字体名称。

  3. 签入您的目标 - &gt;构建阶段 - &gt;复制捆绑资源。如果您没有看到其中的字体,请添加它。

  4. 非常重要 - 列出可用字体以检查您可以在应用中使用的正确名称:

    NSArray *fontFamilies = [UIFont familyNames];
    for (int i = 0; i < [fontFamilies count]; i++)
    {
       NSString *fontFamily = [fontFamilies objectAtIndex:i];
       NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies   objectAtIndex:i]];
      NSLog (@"%@: %@", fontFamily, fontNames);
    }
    
  5. 找到您需要的字体并按以下方式设置:

    UIFont *customFont = [UIFont fontWithName:@"PTSans-NarrowBold" size:20];