【问题标题】:Set bold font to NSString iOS将粗体字体设置为 NSString iOS
【发布时间】:2015-09-18 20:02:33
【问题描述】:

我已将 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];

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

【问题讨论】:

  • 也许你应该写[UIFont fontWithName:@"PT_Sans-Narrow-Web-Bold" size:14.0f];
  • 字体名称错误,我列出了我的应用程序中所有可用的字体,问题解决了

标签: ios fonts nsstring nsattributedstring nsmutablestring


【解决方案1】:

您可以通过将其添加到您的 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 所说,大写可能是你的问题。

【讨论】:

  • 嗨,您的回答帮助我找到了解决方案,我会接受您的回答,但我也会详细说明我是如何解决我的问题的。
【解决方案2】:

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

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

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

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

  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);
    }
    

找到你需要的字体并这样设置:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-30
    • 2015-09-23
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多