开发者社区 问答 正文

获取错误,无法识别的字体系列‘din-next-lt-w23-Regular’in React-NA

我在我的应用程序中使用字体。所以我需要添加字体DIN-Next-lt-w23-常规在我的应用程序里。但我在IOS中遇到了错误,也就是说,Unrecognized font family 'din-next-lt-w23-regular'...我加了.ttf文件在IOS/资源和info.plist...这是我的代码react-native.config.js

module.exports = {
  project: {
    ios: {},
    android: {},
  },
  assets: ['./assets/fonts/'], 
};

截图:https://i.stack.imgur.com/MFGV2.png

展开
收起
游客5akardh5cojhg 2019-12-11 18:33:28 508 分享 版权
阿里云 AI 助理回答

在React Native中使用自定义字体时,确保字体文件正确地被项目识别和链接是至关重要的。根据你的描述,你已经采取了一些正确的步骤,比如将字体文件放入指定的assets/fonts目录,并尝试在react-native.config.js中配置资产。但是,遇到“Unrecognized font family”错误通常意味着尽管文件存在,但可能没有被正确地复制到应用的bundle中,或者字体名称在代码中引用的方式与实际的字体文件名不匹配。

这里有几个检查点和解决步骤:

  1. 确保字体文件名正确:确认你的.ttf文件名(包括大小写)完全匹配你在代码中引用的字体名称。例如,如果文件名为DINNextLTW23-Regular.ttf,那么在样式中引用时也应该是这个名字。有时候,字体文件名和其PostScript名称或Family Name不一致,需要根据实际查看。

  2. 清理并重新构建项目:有时缓存问题会导致新添加的资源未被正确识别。你可以尝试执行以下命令来清理并重建项目:

    • react-native run-ios --reset-cache
    • 或者,在Xcode中选择Product > Clean Build Folder,然后重新运行项目。
  3. 检查Info.plist:虽然你提到已将字体添加到了info.plist,但请再次确认字体的全名(包括后缀)是否正确列出。正确的格式应如下所示:

    <key>UIAppFonts</key>
    <array>
       <string>DINNextLTW23-Regular.ttf</string>
    </array>
    
  4. 使用react-native link(如果适用):对于一些旧版本的React Native项目,可能需要手动链接字体资源。虽然从React Native 0.60开始,自动链接功能成为默认,但如果你的项目版本较老,可以尝试运行react-native link。不过,请注意这个命令在React Native 0.60及以上版本可能不再推荐使用,因为CocoaPods和其他自动管理工具已经内置了资源链接功能。

  5. 直接在Xcode中添加字体:作为最后的手段,你也可以直接在Xcode项目中手动添加字体文件。做法是在Xcode的Project Navigator中右键点击"Add Files to 'your_project_name'", 然后选择你的字体文件,并确保它们被添加到了"Copy items if needed" 和 "Add to targets" 的选项上。

如果以上步骤都尝试过还是无法解决问题,建议检查字体文件本身是否有损坏,或者尝试使用另一个字体文件看是否能正常工作,以排除特定字体文件的问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: