繁体   English   中英

iOS版。 字体在模拟器上可用,但在设备上不可用

[英]iOS. font available on simulator but not on device

我在应用程序中使用自定义字体,并遇到了非常奇怪的问题。 该字体在模拟器上可用,但在实际的iPad上不可用。

1我不会混淆字体名称和文件名。 文件名是bitdust2.ttf而字体名是BitDustTwo ,这就是我所说的,在模拟器上也可以。

2这不是区分大小写的问题。 字体确实在设备上不可用。 我这样做时知道原因:

NSLog(@"%@", [UIFont familyNames]);

我在模拟器上看到我的字体包含在familyNames数组中,但在iPad上却丢失了。 怎么了? 您是否遇到过这样的问题?

(来自以上注释:)验证字体文件“ bitdust2.ttf”是否已添加到目标中并已复制到应用程序包中。

标题为模拟器的是模拟器,而不是真正的模拟器。 模拟器运行相同的命名API,但是由于模拟器在OS X而非iOS上运行,因此模拟器通常具有更多功能。 例如,模拟器上的媒体播放器类比设备上支持的文件(编解码器)类型更多,因为OS X比iOS支持的编解码器更多。 在模拟器上,可用的字体比设备上的字体多。

以下是有关在iOS应用中嵌入字体的更多详细信息:

在iOS 4中有一种使用自定义字体的简单方法。

  1. 将您的字体文件(例如Chalkduster.ttf)添加到XCode中项目的Resources文件夹中。
  2. 打开info.plist并添加一个名为UIAppFonts的新密钥。 此项的类型应为array。
  3. 将自定义字体名称添加到此数组,包括扩展名(Chalkduster.ttf)。
  4. 现在,您可以在应用程序中使用[UIFont fontWithName:@“ Chalkduster” size:16]。

重要的是不要错过任何步骤。 如果仍然有问题,请转到XCode中项目的“构建阶段”选项卡,然后在“副本捆绑资源”选项卡下,确保已包含字体文件。 如果没有,请添加它。

检查设备的操作系统版本及其对iOs版本的支持。 您使用的自定义字体必须与设备的iOS兼容。

检查答案。 如果不支持,可能需要使用其他自定义字体。

我只是遇到了同样的问题,并且在确认所有内容都正确之后:

  • 字体已添加到info.plist“应用程序提供的字体”中的相应键中
  • 字体被添加到项目-> info与info.plist相同的键下(这只是意味着我保存了plist)
  • 字体文件已添加到项目中
  • 字体文件在项目文件夹中
  • 项目->目标->构建阶段->复制捆绑软件资源:包含我的字体文件
  • 检查文件是否与目标关联

我不得不再次下载文件并重新添加它..当我更改文件名时...所以我认为.ttf文件已损坏

您需要将字体嵌入到应用程序中。 说明在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM