调试特定字体在 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 是无法使用的字体。
好吧,是的,你可以使用任何这些字体,例如 我需要相同的解决方案,使用 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 中不起作用
快速刷新在 Visual Studio Code 中的 React Native 中不起作用
PushNotificationIOS.presentLocalNotification() 在 react-native 中不起作用