【问题标题】:iPhone Custom Fonts with Font Suitcase带有字体手提箱的 iPhone 自定义字体
【发布时间】:2011-03-11 23:52:24
【问题描述】:

我正在尝试在 iOS4 应用程序中使用 Font Suitcase 作为自定义字体,但没有任何成功。

我已阅读其他记录如何使用自定义字体的帖子,因此已将手提箱复制到我的项目中,将其添加到资源和 Info.plist ' 由应用程序数组提供的字体,并尝试在 Interface Builder 和代码中使用它。但它不起作用!

我发现的所有关于自定义字体的示例都显示将它们与 ttf 或 otf 文件一起使用,但没有与手提箱一起使用。可以做到吗?如果没有,我如何将字体册中的某些内容放入可用作自定义字体的文件结构中?

【问题讨论】:

    标签: iphone ios ios4


    【解决方案1】:

    首先将 SystemConfiguration 框架包含到您的项目中。并根据您的要求添加 ttf 或 otf 文件。然后导入 dlfcn.h 文件来委托实现文件。并且您必须在此之后调用该函数,如 image 中所附。

    然后你可以在你的控制器中访问任何你想使用自定义字体的地方。你只需要在 UIFont 的 fontwithName: 方法中传递字体。

    【讨论】:

    • 这没有回答问题,即使用(pre-OpenType)手提箱格式字体。
    【解决方案2】:

    我遇到了同样的问题,刚刚解决了。朋友给了我几个压缩的字体,我解压缩然后文件大小为零 kb,我无法将它们安装到 Font Book 中。 所以我搜索了一下,发现我的朋友应该使用 StuffIt Expander 进行压缩。于是他又把文件发给我,我用 StuffIt Expander 解压。然后我可以将字体安装到我的字体册中。

    但是,这些字体在我的 iOS 应用程序中仍然不可用。所以下面是我所做的:

    1. 我发现我需要转换字体,所以我安装了 Fondu http://fondu.sourceforge.net/ 安装结束说不成功,但后来我还是能用的。

    2. 然后我意识到我需要 Rosetta 来运行 Fondu,所以我查看了此页面上的说明。 取出我的 Snow Leopard CD 并安装可选包 http://www.macobserver.com/tmo/article/snow_leopard_installing_rosetta/

    3. 打开终端并转到您的字体所在的目录。键入命令: 火锅 [字体文件] 然后你会得到一个提示,询问你是否要保存[字体文件].pfb 选择是。

    4. 现在在您的 XCode 中,将 pfb 文件添加到您的项目中。然后转到 info.plist 并将文件添加到 UIAppFonts(包括 .pfb 扩展名)。

    5. 我在 UITableViewCell 中测试了字体

    cell.textLabel.font = [UIFont fontWithName:@"[字体文件]" size:30]; // 不包含 .pfb 扩展名

    字体显示正常。我最初认为 iOS 需要一个 .ttf 文件,但看起来 .pfb 也可以。

    希望这会有所帮助。

    其他测试提示: 如上所示添加 UIAppFonts plist 数组后,在 appDidFinishLaunchingWithOptions 方法和控制台类型中添加断点

    po [UIFont familyNames]
    

    这将为您提供已安装字体的列表,因此请搜索您的字体系列名称。将其复制并粘贴到此:

    po [UIFont fontNamesForFamilyName:@"familyname"]
    

    这将为您获取您在代码中引用的字体名称。我没有尝试过 [font filename] 方法,但这为您提供了应用程序用来引用您想要的确切字体的名称。当字体包含一系列变体或者您从同一个系列安装了多个变体时,这一点很重要。例如 helvetica 有四种变体,因此您可以通过这种方式选择正确的一种:

    lblMyLabel.font = [UIFont fontWithName:@"fontname" size:lblMyLabel.font.pointSize]
    

    例如

    lblMyLabel.font = [UIFont fontWithName:@"Helvetica-Oblique" size:lblMyLabel.font.pointSize]
    

    这会保留您最初用于标签的字体磅值。我也只有在视图加载后才成功。

    【讨论】:

      【解决方案3】:

      此解决方案不需要 Fondu 或 Rosetta,但它确实需要在 macOS 的终端应用程序中进行一些剪切和粘贴操作。

      相当简单,而且免费。

      https://sittingduck.co.nz/2013/11/unpacking-the-suitcase/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-19
        • 2011-06-05
        • 2011-09-07
        • 1970-01-01
        • 2011-02-12
        • 2017-08-21
        • 1970-01-01
        相关资源
        最近更新 更多