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

Only one custom font being recognized at item 0 in info.plist (xcode iOS)

我导入了三种字体

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


如果我按此顺序设置 info.plist(项目 0 = KorUB.ttf),则只有 KorUB.ttf 被识别:

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

如果我更改顺序(项目 0 = KorUM.ttf),则只能识别 KorUB.ttf:

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

这是什么?漏洞?有谁知道如何解决这个问题?

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

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

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

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

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

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

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

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

-(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 文件名,可以不同,查看字体列表并使用列表中列出的名称,应该可以。

干杯。

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