将粗体设置为 NSString iOS

Set bold font to NSString iOS

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

需要是这个家族的字体。知道吗,我做错了什么?

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

如果我们想在我们的应用程序中使用尚不存在的字体,我们应该注意几件事,以免重蹈我的覆辙,然后想知道 "what is wrong, my code is perfectly written"。

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

  2. 将其添加到.plist 文件中。在你的 plist 文件中添加 'Fonts provided by application' 键,并在项目 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];