调试特定字体在 React Native 中不起作用的原因

Posted

技术标签:

【中文标题】调试特定字体在 React Native 中不起作用的原因【英文标题】:Debugging why specific font is not working in React Native 【发布时间】:2015-12-07 20:59:47 【问题描述】:

我目前正在使用许多不同的字体。除了一个特殊的,他们都在工作。

我添加它的方式与添加其他有效的方式相同:

    将字体导入项目 修改 info.plist 找到正确的字体系列名称(我通过在 RCTConvert 中插入 NSLog 来做到这一点) 通过 CSS 和 fontFamily 在 react-native 中使用字体

很遗憾我不能公开分享字体,所以我不得不问如何调试这个问题?

【问题讨论】:

【参考方案1】:

一个可能的罪魁祸首是字体粗细。我曾尝试在某一时刻使用权重为 325 的字体,但 React Native 似乎不允许使用字体,除非权重在其枚举值范围内(正常、粗体、100-900 范围内的所有数百个) .

我使用这个应用程序来修改我尝试使用的文件的字体粗细,并将其设置为标准 400:https://glyphsapp.com

【讨论】:

谢谢你,约翰,我会尽快给你赏金。【参考方案2】:

在 AppDelegate.m 的 NSURL *jsCodeLocation 下,粘贴以下代码。这将注销所有可用字体,包括您添加的新字体:

for (NSString* family in [UIFont familyNames])

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

这样,您可以获得要在您的应用中使用的确切字体名称。日志输出应如下所示:

【讨论】:

是的,我试过这样做。我看到了family,但name 不见了。如果我们从你的例子中拿 Savoye LET` - 没有SavoyLetPlain 我又做了一次,它实际上不是空的,它显示出来了。它不起作用 - 它正在呈现不同的字体:i.imgur.com/532gu7q.png 您能否提供一张您的 XCode 项目正在注销的图像?谢谢。 查看此链接:i.imgur.com/iF94lC9.png Impact 是无法使用的字体。 好吧,是的,你可以使用任何这些字体,例如 你好! 文本> ; “它正在呈现不同的字体”是什么意思?【参考方案3】:

我需要相同的解决方案,使用 Swift。这是在 Swift 中打印出字体家族和面孔的脚本(在 appDelegate 中工作)

let fontFamilies =  UIFont.familyNames()
    for  fontNames in fontFamilies
      print(fontNames)
        let fontFace = UIFont.fontNamesForFamilyName(fontNames)
        for aName in fontFace
            print("   \(aName)")
        
    [output of script][1]

链接到部分日志...http://www.zonesight.com/stackImages/font.png

【讨论】:

以上是关于调试特定字体在 React Native 中不起作用的原因的主要内容,如果未能解决你的问题,请参考以下文章

调试和发布 apk 在 React Native 0.63.3 中不起作用

套接字在发布版本中不起作用 React Native

快速刷新在 Visual Studio Code 中的 React Native 中不起作用

PushNotificationIOS.presentLocalNotification() 在 react-native 中不起作用

setParams 在 react-native 中不起作用

Gif 在 React Native iOS 中不起作用