【问题标题】:How to use a .ttc custom font in iOS如何在 iOS 中使用 .ttc 自定义字体
【发布时间】:2014-09-18 00:04:08
【问题描述】:

我了解到 iOS 支持 .ttc 文件(字体集合),但我不知道如何仅使用一个文件指定不同的字体粗细。

我习惯用这样的文件名来做

[UIFont fontWithName:@"ProximaNova-Bold" size:17.0f];

但是对于 .ttc 文件,我只有一个文件。

【问题讨论】:

  • 你找到解决这个问题的方法了吗?

标签: ios uifont custom-font


【解决方案1】:

如果您的问题是关于添加系统未提供的字体,Adam 的指导是正确的,但不完整。

  1. 将字体添加到应用程序包并确保它是“复制包资源”阶段的一部分。您还可以在项目导航器中选择字体,然后在右侧的文件检查器中检查大量成员。
  2. 打开应用程序的 plist 并将字体的文件名添加到键 UIAppFonts 的数组中
  3. 获取字体的后记名称(按照 Adam 的指示)

    1. 在 OS X 机器上安装字体
    2. 在字体册中打开字体
    3. 打开字体系列,然后打开字体
    4. 查看 > 显示字体信息。注意“PostScript 名称”。
  4. 使用 PostScript 名称 [UIFont fontWithName:@"AppleSymbols" size:24]在代码中引用字体

【讨论】:

  • 如何在 ttc 中选择特定字体?假设我们有“中”字体。分配字体时如何提及?
【解决方案2】:

您说您“习惯于按文件名进行操作”,但是 fontWithName:size: 不是这样工作的。在这种情况下,“名称”字段应该是字体本身的名称。如果它过去与文件名一起工作,那只是因为你很幸运,文件名和字体恰好是相同的。

找到字体名称的方法有两种:

1) 在 OS X 机器上安装字体,然后在 Font Book 中打开字体,单击所需的系列,然后使用 Preview > Show Font Info。您需要“PostScript 名称”。

2) 随着应用程序的运行,在调试器中停止并调用 [UIFont familyNames]。在这些名称中找到您的字体的可能候选者。然后用你的家人的名字调用 [UIFont fontNamesForFamilyName:@"Foo"]。选择可能与您的字体相对应的字体名称。

注意,这解决了“如何指定不同的字体粗细”的问题。答案是您实际上是通过按名称引用它们来从 TTC 中加载单个字体。

【讨论】:

  • 最初的问题是关于向包中添加字体并尝试加载它。您的回答仅涉及使用 Apple 提供的字体的情况。 iOS 8 或 9 中关于这方面的一些变化,这就是这篇文章的原因。
猜你喜欢
  • 2014-12-10
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 2012-02-21
  • 2012-10-13
  • 2012-03-10
相关资源
最近更新 更多