无法将自定义字体添加到应用程序

Posted

技术标签:

【中文标题】无法将自定义字体添加到应用程序【英文标题】:Can't add custom font to application 【发布时间】:2013-07-24 06:22:11 【问题描述】:

我在应用程序中使用自定义字体时遇到问题。

以下描述了我采取的步骤

1 - 将 .TTF 字体添加到应用程序 2 - 修改 info.plist 文件。 3 - 将键“应用程序提供的字体”添加到新行 4 - 并将每个 .TTF 文件 (of font) 添加到每一行。

所以我有一个字体数组,每个字体都有一个 .ttf 扩展名。

然后我尝试添加字体

UILabel *lblName = [[UILabel alloc] initWithFrame:CGRectMake(25, 65, 230, 33)];
lblName.backgroundColor = [UIColor clearColor];
[lblName  setFont: [UIFont fontWithName:@"acmesab" size:32]]; // acmesab is my custom "font" name.
lblName.textAlignment = NSTextAlignmentLeft;
lblName.text = @"Name:";
[simapleView addSubview:lblName];

【问题讨论】:

在“字体册”(Mac 应用程序)中打开 ttf 文件并检查字体的实际名称。不要使用字体名称作为 TTF 文件的文件名。使用“字体册”中显示的字体名称 检查您的字体是否已添加到“复制捆绑资源”中 @samfisher- 如果我的“字体书”中没有这种字体,那么我需要做什么?? 【参考方案1】:

打开您的项目 -> Targeta -> 构建阶段 -> 复制捆绑资源。检查您的文件是否显示在列表中?如果没有,则添加它们并再次运行应用程序。它应该可以工作。

使用以下代码检查是否添加了字体,并从列表中添加适当的字体名称。

NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)

    NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
    fontNames = [[NSArray alloc] initWithArray:
                 [UIFont fontNamesForFamilyName:
                  [familyNames objectAtIndex:indFamily]]];
    for (indFont=0; indFont<[fontNames count]; ++indFont)
    
        NSLog(@"    Font name: %@", [fontNames objectAtIndex:indFont]);
    
    [fontNames release];

[familyNames release];

【讨论】:

【参考方案2】:

对于自定义字体,首先您必须在系统中安装您的 .ttf 文件。然后将其导入您的项目。重命名 .ttf 文件,如“FontBook”所示,然后 添加

 <key>UIAppFonts</key>
    <array>
    <string>Times New Roman.ttf</string>
</array>

在您的 info.plist 文件中。然后将其用作项目中的字体名称

CCLabelTTF *label1 = [CCLabelTTF labelWithString:@"Name" fontName:@"Times New Roman" fontSize:26];

【讨论】:

【参考方案3】:

您应该查看您的字体属性,实际字体名称是什么。 有时您导入名称为FjallaOne-Regular 的字体。但是,如果您查看属性,您会发现字体的名称类似于 Fjalla One

因此你需要这样使用它。

[lblName  setFont: [UIFont fontWithName:@"Fjalla One" size:32]];

代替

[lblName  setFont: [UIFont fontWithName:@"FjallaOne-Regular" size:32]];

还要检查你是否设置了正确的target membership

你可以在这里看到我所说的正确名称的意思

LINK

【讨论】:

@stef.. 我怎么能看到我的字体的实际名称,即使这种字体在我的“字体书”中不可用.. 而且我不想将此字体安装到我的“FONT BOOK”也..所以请给我建议.. @Ranju 如果您要使用的字体在您的“字体簿”中不可用,那么您必须安装它,当您打开它时,您可以显示字体名称,粘贴该名称。 为什么你不想在你的字体册中安装它。我认为他们是你能看到它的唯一途径【参考方案4】:

有时可能会很棘手,因为某些字体似乎无法识别。看看我几个月前的回答,这可能会对你有所帮助 - https://***.com/a/10170599/331854

【讨论】:

以上是关于无法将自定义字体添加到应用程序的主要内容,如果未能解决你的问题,请参考以下文章

将自定义字体添加到 Xcode 13+

如何将自定义字体添加到我的应用程序? [复制]

将自定义图标添加到字体真棒

使用 Xcode 将自定义字体捆绑到 macOS 独立应用程序中

无法将自定义字体加载到 OSX 项目中,但是......我进入了 iOS 项目?

JSF2 将自定义字体添加到 CSS 样式表