info.plist(xcode iOS)中第0项只能识别一种自定义字体

时间:2015-04-21 04:51:19

标签: ios objective-c xcode fonts custom-font

我导入了三种字体

检查一切正常,直到我添加第二个自定义字体等等。


如果我按此顺序设置我的info.plist(项目0 = KorUB.ttf),则只识别KorUB.ttf: enter image description here

UIFont *fontOne = [UIFont fontWithName:@"KorUM" size:10.0f] // not works
UIFont *fontTwo = [UIFont fontWithName:@"KorUB" size:10.0f] // works

如果我更改订单(项目0 = KorUM.ttf),则仅识别KorUB.ttf: enter image description here

UIFont *fontOne = [UIFont fontWithName:@"KorUM" size:10.0f] // works
UIFont *fontTwo = [UIFont fontWithName:@"KorUB" size:10.0f] // not works
这是什么?错误?有谁知道如何解决这个问题?

4 个答案:

答案 0 :(得分:2)

它安装字体,不应该是这种情况,尝试使用下面的代码列出所有字体

-(void)listFonts{

    for(NSString *familyName in [UIFont familyNames]){
        NSLog(@"Family name: %@", familyName);
        for(NSString *fontName in [UIFont fontNamesForFamilyName:familyName]){
            NSLog(@"    Font name: %@", fontName);
        }
    }

}

在您的情况下,根据您使用的字体

UIFont *fontOne = [UIFont fontWithName:@"KorUM" size:10.0f]; 
UIFont *fontTwo = [UIFont fontWithName:@"KorUB" size:10.0f]; 

可能无效,因为 fontWithName 不一定要与字体 ttf 文件名相同,它可以不同的是,看到字体列表并使用列表中列出的名称,它应该工作。

干杯。

答案 1 :(得分:0)

使用以下代码检查您的字体是否可以使用正确的名称。

for(NSString *fontfamilyname in [UIFont familyNames])
{
    NSLog(@"Family:'%@'",fontfamilyname);
    for(NSString *fontName in [UIFont fontNamesForFamilyName:fontfamilyname])
    {
        NSLog(@"\tfont:'%@'",fontName);
    }
}

字体名称必须与文件名相同。

答案 2 :(得分:0)

有时字体名称可能不是您所期望的。它可能与您可以看到的任何可见字体名称非常不同。

添加此代码段以在控制台中记录应用程序可用的所有字体。

for (NSString* family in [UIFont familyNames])
{
    NSLog(@"%@", family);

    for (NSString* name in [UIFont fontNamesForFamilyName: family])
    {
        NSLog(@"  %@", name);
    }
}

答案 3 :(得分:0)

我遇到了同样的问题。我找到了解决方案。请试一试。 在你的故事板中设置标签的自定义字体或任何视图(你没有得到的字体)然后运行项目。之后,您还可以以编程方式设置字体。