我该如何安装和使用包含在iOS 6中的额外亚洲字体?

17
我正在编写一个 iOS 6 的 iPhone/iPad 应用程序,需要显示中文字符。iOS 6 默认安装的亚洲字体远不能满足要求。然而,在 Apple's iOS 6: Font List page 页面底部,苹果公司声明:

“应用程序也可以根据需要安装以下 [大多数为亚洲] 字体。”

这些亚洲字体族群没有出现在 [UIFont familyNames] 提供的列表中。在 UIFont 类文档或 Apple Developer 论坛中,我没有找到任何有关如何安装 iOS 6 中预先包含但尚未“安装”的字体的信息。您有什么建议吗?


有趣的问题!我现在迫不及待地想知道答案。 - Simon Whitaker
5个回答

8
  • 在iOS中,您无法更改全局字体。
  • 此列表中的一些字体已经“安装”,并出现在[UIFont familyNames]中(例如Apple SD Gothic Neo)。
  • 每个iOS应用程序都可以添加尚不受支持的自定义字体(例如BiauKai)。
  • UIFont.h中从5.1到6.0没有API差异。
  • UIFont.h中自4.0以来没有API差异(添加了lineHeight,但导致了领先标记的过时)。

“应用程序还可以根据需要安装以下[大多数为亚洲]字体。”

由于我们知道每个开发人员都可以使用自定义字体,因此将它们添加或“安装”到您的应用程序中绝对没有问题。

我非常确定这些是一些请求的字体,苹果公司的某个人将它们写在此页面上,以表明即使它们并没有得到iOS的特别支持,仍然可以使用这些字体。


我知道这不是完全正确或完全错误的答案 - 它基于我所知道和在网上找到的信息,并清楚地表明,我们可能永远不会知道答案。


要支持自定义字体,请将字体以.ttf格式添加到项目中(并添加到目标 - 我曾经忘记过这一点!),并将其添加到您的Info.plist中。现在可以使用它了:someLabel.font = [UIFont fontWithName:@"MySuperFont" size:100];


我在iOS6发布后不久看到了这个列表,当时他们说他们增加了更多的亚洲语言支持,所以我认为它们没有默认安装是因为它们的大小相当大,但应用程序可以触发下载。但你可能是对的。 - Vincent
但字体支持并不等同于语言支持。从苹果的角度来看,唯一合乎逻辑的关系是Safari中的字体支持。但自从出现了@font-face,这里也可以实现任何可能性。 - Fabio Poloni
完全正确的解决方案。如果您想要特殊字体,只需从众多字体网站下载.ttf文件,或使用https://github.com/nathanhammond/iosfont下载并将它们放置在您的Xcode项目中即可。 - lukaswelte
确实,您可以安装任何自定义字体,但我只想知道为什么苹果在“应用程序还可以根据需要安装以下字体”中只指定了一小部分亚洲字体。这些字体是否包含在OS X中,并且它们是iOS和OS X之间字体的唯一区别? - Vincent
实际上这就是我所做的。这些字体在 OS X 上默认安装(我使用的是 10.8 Mountain Lion)。我只是将它们复制到我的应用程序包中,将它们添加到了 Info.plist 中,现在可以在应用程序中很好地访问它们。像你一样,Fabio,我猜测 / 希望,苹果的保证“根据需要安装字体”意味着我们有许可证以这种方式在 iOS 应用程序中使用它们。当我提交该应用程序时,我想我会知道确切情况。 - Anthony
@Vincent 例如,BiauKai是iOS和OS X之间的差异 - 但字体“Apple SD Gothic Neo”已经包含在iOS中。 - Fabio Poloni

2
“应用程序也可以根据需要安装以下(主要是亚洲的)字体。”这涉及到法律和运营问题。这些字体在Mac OSX下经过Apple的许可,并提供给用户使用。如果您想使用它们,可以将其包含在iOS捆绑包中,通过从OSX / Library / Fonts文件夹中复制来使用,而不会侵犯各自字体所有者的版权。
此外,它们与iOS 6兼容(例如,在Font Book应用程序中通过字体验证),您可能已经知道有许多免费的亚洲字体在网络上,但在iOS 6上不能100%工作,尝试它们全部非常令人沮丧;专业亚洲字体的许可证相当昂贵。
要安装所需的字体,请使用“字体册”,确定您喜欢的字体,打开Finder(它可能是一个带有表意文字的字体名称,只需继续操作),将字体复制到您的项目中,并使用字体名称而不是文件名作为参考。确保在信息中更新UIAppFonts(应用程序提供的字体)项目。
例如:Mac OSx上的楷体是“楷体.ttc”,按照说明准备您的项目将使您能够创建UIFont名称为“Kaiti SC”的字体。
最后一点:您不应发布包含这些字体的公共项目,例如在Github上。

0
如果您在Mac上下载并安装了任何字体,它将会出现在Xcode中,如下所示:

enter image description here enter image description here enter image description here


它可以在界面构建器中工作,但在iOS上不会工作,因为您尚未将其添加到目标中。 - Fabio Poloni
@Fabio Poloni - 啊,明白了。你还需要将字体添加到项目的框架文件夹中。 - OnkaPlonka
将它添加到你的项目中。将它添加到你的目标中(否则它将不可用)。将它添加到你的 Info.plist 中。然后一切都应该正常工作 ;) - Fabio Poloni

0

-1

这绝对不是他所问的。 - Fabio Poloni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接