【问题标题】:iOS custom font in a referenced folder引用文件夹中的 iOS 自定义字体
【发布时间】:2013-08-11 04:32:09
【问题描述】:

引用文件夹中的自定义字体不在字体系列中,无法使用。当我使用普通组而不是引用文件夹时,一切正常。我的Info.plist 是正确的,我在构建阶段拥有正确的复制包资源(引用的文件夹在那里,而不是其中的每个文件)。我还在 [UIFont fontWithName] 中使用了正确的 PostScript 名称,但它只返回 nil

当我检查我的主包时,字体文件在模拟器/设备中,我可以毫无问题地阅读它。唯一的问题是UIFont 看不到它。当我列出字体系列时,我的自定义字体不存在。

仅当我在引用文件夹或自定义包(也是引用文件夹)中有自定义字体时才会出现此问题。当我将字体放在正常组中时,一切正常。我尝试清理项目,卸载应用程序并重置 iphone 模拟器。当我从 Xcode 4.6 和 Appcode 2.1 构建时,也会发生同样的问题。我正在构建 iOS 6.1 SDK。

我浏览了有关在 iOS 中使用自定义字体的所有提示和技巧,唯一的区别是引用的文件夹。我希望我的资源在引用的文件夹(或自定义包)中,因为我在其他程序中创建资源(着色器/纹理/...),我只想将它们复制到文件夹中而不是将它们一一添加到Xcode。

我的方法可能有什么问题?或者这是构建系统的已知错误/限制?

【问题讨论】:

    标签: ios cocoa-touch fonts


    【解决方案1】:

    我在解决另一个问题时找到了解决方案(缺少图标,将它们移动到引用的文件夹/自定义包中时)。

    解决这个问题的方法是使用plist文件中自定义字体的完整路径(项目目录中的完整相对路径)。就我而言,它看起来像这样:

    <key>UIAppFonts</key>
    <array>
        <string>mybundle.bundle/fonts/OpenSans-Regular.ttf</string>
        <string>mybundle.bundle/fonts/OpenSans-Light.ttf</string>
    </array>
    

    当使用 Xcode 的“图形”表示 plist 时,只需在此处输入带有文件名的整个路径。

    使用引用文件夹/自定义捆绑包中的其他资源时,例如按钮图标的图像并在代码中设置它们,也使用整个路径而不仅仅是图像的名称,例如

    [UIImage imageNamed:@"mybundle.bundle/images/cancel.png"]
    

    而不仅仅是

    [UIImage imageNamed:@"cancel.png"]
    

    【讨论】:

      【解决方案2】:

      这是 Xcode 的限制。不久前我遇到了同样的问题。我希望最终 XCode 会出现一个打包或收集选项,它可以像可可豆荚一样将代码重新打包到漂亮的文件夹中,但现在我们陷入了困境。

      【讨论】:

      • 这看起来像是底层构建系统的限制,因为 AppCode 的行为相同。我希望苹果有一天会解决他们与组/文件夹的混乱。我会再等一会儿,如果没有人给出更好的答案,我会接受你的。谢谢。
      • 我找到了解决这个问题的方法,查看我的答案。
      猜你喜欢
      • 2018-01-27
      • 2015-11-16
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 2014-10-10
      相关资源
      最近更新 更多