2

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

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

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

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

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

4

2 回答 2

4

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

解决这个问题的方法是使用 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"]
于 2013-08-12T09:06:17.547 回答
0

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

于 2013-08-09T15:53:24.393 回答