1

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

以下描述了我采取的步骤

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];
4

4 回答 4

0

打开您的项目 -> 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];
于 2013-07-24T06:42:38.600 回答
0

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

因此,您需要像这样使用它。

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

代替

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

还要检查您是否设置正确target membership

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

关联

于 2013-07-24T06:36:07.423 回答
0

对于自定义字体,首先您必须在系统中安装您的 .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];
于 2013-07-24T06:40:17.697 回答
0

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

于 2013-07-24T08:47:22.187 回答