我已经运行react-native start
,然后react-native run-ios
。所以我的应用程序正在运行。
我将ios-glyphs.ttf放入我的根目录中名为fonts的文件夹中。所以./fonts
。然后我添加到package.json中:
"rnpm": {
"assets": [
"fonts"
]
}
然后我跑了react-native link
。
在我的应用程序中,我添加了一个rende:
<Text style={{fontFamily:'ios-glyphs'}}></Text>
加载我的应用程序时很好,但是当我加载呈现此自定义字体的页面时,我得到了#34;无法识别的字体系列&#39; ios-glyphs&#39;&#34;,这里是一个截图:http://i.imgur.com/G6hwlor.png
在解除该错误后页面会加载,但图标看起来像是一个问号但是我的真实图标是一个星星:
然后我做了一些时髦的东西。我以为我把它链接错了所以我更改了文件夹路径,并将字体移动到新文件夹并再次链接。然后我进入了xcode,在&#34;资源&#34;中看到了其中的两个。所以我删除了第一个,因为该文件夹不再存在。
有谁知道如何解决此错误?我应该抛弃这个提交吗?会不会像我从未联系到任何东西?我担心我可能用xcode搞砸了我的项目。
答案 0 :(得分:1)
非常感谢@sfratini - React-Native can't resolve module for fonts - 字体名称实际上与文件名完全不同,正如教程所暗示的那样。
我是如何通过遵循@ sfratini的说明找到真正的字体名称。
我打开了xcode,用xcode在我的项目文件夹中打开了ios
文件夹,就像这样。
然后我将这段代码添加到AppDelegate.m中:
NSArray *families = [[UIFont familyNames] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSMutableString *fonts = [NSMutableString string];
for (int i = 0; i < [families count]; i++) {
[fonts appendString:[NSString stringWithFormat:@"\n%@:\n", families[i]]];
NSArray *names = [UIFont fontNamesForFamilyName:families[i]];
for (int j = 0; j < [names count]; j++) {
[fonts appendString:[NSString stringWithFormat:@"\t%@\n", names[j]]];
}
}
NSLog(@"%@", fonts);
然后在控制台日志中找到新的图标名称。
我的项目文件夹:
使用xcode打开:
单击文件夹,然后添加到AppDelegate.m代码然后保存并运行react-native run-ios
或按“播放”按钮,如下面的屏幕截图(您需要重新编译,我怀疑热重装将工作但我没试过):
然后在控制台日志中吐出完整的字体名称列表:
我在链接之前做了字体,然后在链接之后,做了一个差异来找到我的字体名称。