矢量字体不工作

时间:2017-04-09 00:59:29

标签: react-native react-native-ios

我已经运行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'}}>&#xf193;</Text>

加载我的应用程序时很好,但是当我加载呈现此自定义字体的页面时,我得到了#34;无法识别的字体系列&#39; ios-glyphs&#39;&#34;,这里是一个截图:http://i.imgur.com/G6hwlor.png

在解除该错误后页面会加载,但图标看起来像是一个问号但是我的真实图标是一个星星:

然后我做了一些时髦的东西。我以为我把它链接错了所以我更改了文件夹路径,并将字体移动到新文件夹并再次链接。然后我进入了xcode,在&#34;资源&#34;中看到了其中的两个。所以我删除了第一个,因为该文件夹不再存在。

有谁知道如何解决此错误?我应该抛弃这个提交吗?会不会像我从未联系到任何东西?我担心我可能用xcode搞砸了我的项目。

1 个答案:

答案 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或按“播放”按钮,如下面的屏幕截图(您需要重新编译,我怀疑热重装将工作但我没试过):

然后在控制台日志中吐出完整的字体名称列表:

我在链接之前做了字体,然后在链接之后,做了一个差异来找到我的字体名称。