无法将自定义字体添加到应用程序
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 将自定义字体捆绑到 macOS 独立应用程序中