0

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

1 我不会混淆字体名称和文件名。文件名是bitdust2.ttf字体名BitDustTwo,这就是我的称呼,在模拟器上没问题。

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

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

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

4

5 回答 5

4

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

于 2013-07-03T12:44:45.463 回答
2

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

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

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

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

重要的是不要错过任何步骤。如果您仍然遇到问题,请转到 XCode 中项目的 Build Phases 选项卡,然后在 Copy Bundle Resources 选项卡下,确保包含您的字体文件。如果没有,请添加它。

于 2013-07-03T12:40:00.210 回答
0

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

检查这个答案。如果不支持,您可能需要使用备用自定义字体。

于 2013-07-03T12:31:31.747 回答
0

我刚刚遇到了同样的问题,在验证一切正确后:

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

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

于 2014-04-25T20:47:13.510 回答
-1

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

于 2013-07-03T12:33:14.623 回答