自定义字体问题

时间:2013-03-11 11:50:13

标签: iphone ios ipad fonts uifont

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

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

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

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

这是不是意味着,问题出现在字体kaligraf_latin.ttf?

这是info.plist的printscreen enter image description here

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

3 个答案:

答案 0 :(得分:4)

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

[UIFont familyNames];
[UIFont fontNamesForFamilyName:<font family name>];
希望它会对你有所帮助。

答案 1 :(得分: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]);
    }
}

答案 2 :(得分:0)

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