react-native添加新字体在IOS模拟器上给出'无法识别的字体系列'

时间:2017-02-17 20:29:56

标签: ios fonts react-native

我添加了新字体 - 'SourceSansPro'(从GoogleFonts获取)到我的React-Native项目。但我在IOS模拟器上遇到“无法识别的字体系列”错误。关于这个问题有很多不同的建议,例如删除构建项目或查看字体是否在info.plist中定义或执行'react-native-link'等。但是,它们都不适合我的情况。此外,有些人提到,虽然它不能通过CLI工作,但它可以直接通过Xcode执行。然而,它对我不起作用。我困扰了这个问题将近5个小时。最后,我想也许有人可以在这里帮助我。

你有什么建议吗?

enter image description here

4 个答案:

答案 0 :(得分:7)

您的字体名称可能 SourceSansPro

根据您添加到项目中的一个(或多个),名称更有可能是SourceSansPro-RegularSourceSansPro-BoldSourceSansPro-Italic

我没有使用React-Native,但您可以使用以下代码列出应用程序可用的字体系列和字体名称:

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

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

答案 1 :(得分:2)

您还需要确保在iOS项目中将字体作为捆绑包的一部分包含在内。首先将字体拖到项目下Xcode中的文件导航器中。然后在文件导航器中选择字体,打开Inspector并确保在Target Membership下为您的项目选中它。希望这会有所帮助。

答案 2 :(得分:2)

enter image description here

请将您的自定义字体添加到Plist文件中,如附带的屏幕截图,其中包含“应用程序提供的字体”。并且请确保通过将字体名称从xib更改为自定义字体来成功加载字体,您应该在xib的字体列表中看到自定义字体。

谢谢 Nada Gamal

答案 3 :(得分:0)

DonMag答案的Swift版本:

for family: String in UIFont.familyNames{
    print("\(family)")
    for names: String in UIFont.fontNames(forFamilyName: family){
        print("== \(names)")
    }
}