我在应用程序中使用自定义字体时遇到问题。
以下介绍了我采取的步骤
1 - 将 .TTF 字体添加到应用程序
2 - 修改 info.plist 文件
3 - 将关键“应用程序提供的字体”添加到新行中
4 - 并将每个 .TTF 文件(字体)添加到每一行。
所以我有一系列字体,每个字体都有 .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];
答案 0 :(得分:0)
您应该查看font-properties实际的font-name是什么。
有时您导入名称为FjallaOne-Regular
的字体。但是,如果查看属性,您会看到该字体的名称类似于Fjalla One
。
因此你需要像这样使用它。
[lblName setFont: [UIFont fontWithName:@"Fjalla One" size:32]];
而不是
[lblName setFont: [UIFont fontWithName:@"FjallaOne-Regular" size:32]];
同时检查您是否设置了正确的target membership
你可以在这里看到正确名称的含义
答案 1 :(得分:0)
首先,对于自定义字体,您必须在系统中安装.ttf文件。之后将其导入项目。重命名.ttf文件,如“FontBook”和 添加
<key>UIAppFonts</key>
<array>
<string>Times New Roman.ttf</string>
</array>
在info.plist文件中。然后在项目中将其用作fontname
CCLabelTTF *label1 = [CCLabelTTF labelWithString:@"Name" fontName:@"Times New Roman" fontSize:26];
答案 2 :(得分:0)
打开您的项目 - &gt; Targeta - &gt;构建阶段 - &gt;复制捆绑资源。检查您的文件是否显示在列表中?如果没有,那么添加它们并再次运行应用程序。它应该工作。
使用以下代码检查是否添加了字体,并从列表中添加适当的字体名称。
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];
答案 3 :(得分:0)
由于某些字体似乎无法被识别,因此有时会很棘手。看看几个月前我可能对你有帮助的答案 - https://stackoverflow.com/a/10170599/331854