3

我的应用程序中需要 OpenSans,因此我导入了整个 OpenSans,其中包括 Bold、ExtraBold、Italic、Regular、Light 等。我将它们添加到我的 Mac 上的 Fontbook(以检查使用它们时需要使用它们的确切名称),文件结构中的我的项目,并在构建阶段也将它们添加到我的项目中。

现在奇怪的事情;当我将它们与 UIFont 一起使用时,只有 OpenSans-Bold 有效。其余的不起作用。如果我使用 OpenSans-Bold(正是 Fontbook 给出的标识符),一切正常。但是,如果我将其更改为 OpenSans-Regular 或 OpenSans-Light 或该系列中的其他内容,我会使用 UIFont 获得系统字体,而使用 Quartz 绘图时将一无所获。

所有字体都在所有列表中,我检查了 Fontbook 中的所有标识符(这就是我无法让 OpenSans-Bold 工作的原因),但现在我不知所措。知道我做错了什么吗?

4

3 回答 3

14

OpenSans Regular 是 just OpenSans, semi-bold isOpenSans-Semibold等。

在 Font Book.app 中选择字体并选择Command + I显示字体信息的字体。在顶部的“PostScript 名称”中,您可以看到字体的名称以及如何在代码中调用它。

此外,只需确保字体已实际添加到您的包和 plist 中:)

于 2013-08-02T16:52:33.977 回答
0

您可以使用以下代码行检查 ttf 文件提供的字体。

此方法由 UIFont 类提供。

  • (NSArray *)fontNamesForFamilyName:(NSString *)familyName
于 2013-08-05T10:34:39.513 回答
0

您需要将文件添加到正确的位置,然后在 plist 文件中,然后枚举它们并打印它们以获取 PDF 名称,以便您可以访问它们。很可能您使用了错误的名称。字体有三种名称:

  • 文件名
  • 字体册中的字体名称
  • PDF 名称 - 这是您在代码中用于访问字体的名称

看到这个答案: 添加自定义字体到 iOS 应用程序找到他们的真实姓名

于 2014-04-21T10:36:03.717 回答