【问题标题】:How do I include a font with my iPhone application?如何在我的 iPhone 应用程序中包含字体?
【发布时间】:2010-10-08 15:21:23
【问题描述】:

我已经看过这篇文章了:

Can I embed a custom font in an iPhone application?

这很有帮助,但我想简单地通过以下方式加载字体:

UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];

有些人报告说这是可能的,但它对我不起作用。有人可以确认如何将自定义字体与 iphone 应用程序捆绑在一起吗?

另外,在上述帖子中,一个答案指出:字体的“名称”不一定是文件名。

如何确定 UIFont 可以识别的字体的“名称”?我可能没有使用正确的名称。

【问题讨论】:

    标签: iphone cocoa-touch


    【解决方案1】:

    您需要采取几个步骤:

    1) 确保您有权分发字体。大多数字体——甚至是免费字体——都不允许您分发它们。将它们放在您的应用中很可能构成“分发”,并且会被视为非法。

    2) 将字体复制到应用中的 Resources 文件夹。确保它处于 Copy Files 构建阶段。

    3)在plist文件中添加“应用程序提供的字体”键,并添加字体的完整文件名(包括扩展名)

    4) 通过放入临时代码行来获取字体的“名称”:

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

    构建并运行应用程序。这会将设备上所有字体的系列名称打印到控制台。找到与您的字体匹配的那个。

    然后您可以在fontWithName: 方法中使用该字体名称。

    【讨论】:

    • 你确定这是对的吗?我试过这样做,我得到的只是正常的字体列表。
    • 正确 - 它只打印出标准字体的名称。不是自定义的。
    • 非常好.. 我的应用程序中有字体,但不知道这些字体的实际名称是什么.. 谢谢..
    • “确保它处于复制文件构建阶段”是什么意思。 ??
    • 我不确定它是否在“分发”字体,我认为它是“嵌入”,就像嵌入到 PDF 中一样,除非您的应用程序允许人们提取字体文件或其他奇怪的东西。嵌入权包含在大多数免费字体中,并且可以为大多数商业字体购买,尽管您可能需要支付额外费用或单独购买。
    【解决方案2】:

    要添加到上面 August 的答案,您需要在 plist 文件中添加“应用程序提供的字体”键,并添加字体的完整文件名(包括扩展名)。然后字体将出现在族打印输出中,您可以使用该名称来设置字体。

    【讨论】:

    • 参考其他答案时要小心。不要使用上面、下面、上一个或下一个这样的词,因为答案的顺序可能会因投票、接受的答案和用户设置而改变。我已将您的观点编辑为@August 的答案。
    猜你喜欢
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2016-10-07
    相关资源
    最近更新 更多