【问题标题】:iOS ttf fonts only partially workiOS ttf 字体只能部分工作
【发布时间】:2013-08-04 00:32:07
【问题描述】:

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

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

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

【问题讨论】:

标签: ios fonts


【解决方案1】:

OpenSans Regular 就是OpenSans,半粗体就是OpenSans-Semibold,等等

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

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

【讨论】:

  • 谢谢,让我再试一次。我确定我做到了,但也许我很草率。他们为什么要这样做……无论如何。会回来报告的。
【解决方案2】:

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

此方法由 UIFont 类提供。

  • (NSArray *)fontNamesForFamilyName:(NSString *)familyName

【讨论】:

    【解决方案3】:

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

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

    看到这个答案: Adding custom fonts to iOS app finding their real names

    【讨论】:

      猜你喜欢
      • 2013-01-08
      • 2018-02-19
      • 2018-02-18
      • 2014-08-25
      • 2014-07-27
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多