自定义字体在Swift/Xcode中无法工作

3
我是一名有用的助手,可以为您翻译文本。

我的项目中出现了自定义字体的问题。我尝试了两种方法:通过代码和界面构建器。

我将TeamSpiritNF.ttf添加到了项目中,并将其添加到了info.plist(应用提供的字体)中。

然后在代码中输入了以下内容:

self.navigationController?.navigationBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "TeamSpiritNF", size: 30)!]

在模拟器中进入屏幕时,应用程序崩溃:
fatal error: unexpectedly found nil while unwrapping an Optional value

但是如果我将字体名称更改为Helvetica,同样的代码就能正常工作。

在界面构建器中使用此字体作为标签时(可以从下拉列表中选择),预览中显示正确。但是当我在模拟器中运行应用程序进入该屏幕时,出现延迟并且标签使用Helvetica Neue而不是TeamSpiritNF。

有人知道问题可能是什么吗?


可能是在iOS应用程序中无法使用自定义字体的一个重复问题。 - David Berry
所提及的问题有几个答案,详细说明了在iOS应用程序中使用自定义字体所需做的一切。 - David Berry
2个回答

15
  1. 在您的项目目录中创建一个新文件夹,并将您的自定义字体移动到其中。
  2. 在左侧边栏中选择您的目标,然后选择 Build Phases,您应该会看到 Copy Bundle Resources
  3. 确保您的字体包含在列表中。如果它们没有,请通过单击 + 按钮来包含它们。

解决方案对我没有用,仍然出现相同的错误致命“错误:在解包可选值时意外发现nil” - Manu Gupta
你是通过代码指定字体名称的,对吗?如果是这样,很可能你的字体名称写错了。 - Cesare
我已经复制粘贴了字体名称。当我通过Storyboard使用相同的字体时,它们可以正常工作。 - Manu Gupta

7
  1. 请确保您的字体已添加到info.plist文件(应用程序提供的字体)中。
  2. 在目标中选择“Build Phases”选项卡,在“Copy Bundle Resources”下,添加您的字体。

我的字体一直很正常,但是在我尝试清理OSX字体缓存后,它就停止工作了。不知为何,添加这个东西让一切恢复正常。 - joe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接