1

我在 info.plist 中将“kaligraf_latin.ttf”添加到“应用程序提供的字体”中

然后我使用UIFont *font = [UIFont fontWithName:@"kaligraf_latin" size:17]and font = nil

我试过 kaligraf_latin.otf。结果是一样的。

然后我尝试了另一种字体 MyriadPro-BoldCond.otf,字体变为 != nil。

这是否意味着问题出在字体 kaligraf_latin.ttf 上?

这是 info.plist 的打印屏幕 在此处输入图像描述

可能问题出在字体名称上。因为在 fontWithName 我应该使用字体名称,而不是字体文件名。如何从字体文件中获取字体名称?

4

3 回答 3

4

使用以下两种方法,您可以检查是否安装了自定义字体或子字体

[UIFont familyNames];
[UIFont fontNamesForFamilyName:<font family name>];

希望对您有所帮助。

于 2013-03-11T12:10:56.823 回答
0

使用它来列出所有可用的字体(包括您添加的字体)和字体名称:

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]);
    }
}
于 2013-03-11T12:38:20.593 回答
0

问题出在字体名称它是 Kaligraf Latin,而不是 kaligraf_latin 我使用这个网站http://www.font2web.com/获得了字体名称

于 2013-03-11T12:41:24.537 回答