我遇到了同样的问题,刚刚解决了。朋友给了我几个压缩的字体,我解压缩然后文件大小为零 kb,我无法将它们安装到 Font Book 中。
所以我搜索了一下,发现我的朋友应该使用 StuffIt Expander 进行压缩。于是他又把文件发给我,我用 StuffIt Expander 解压。然后我可以将字体安装到我的字体册中。
但是,这些字体在我的 iOS 应用程序中仍然不可用。所以下面是我所做的:
我发现我需要转换字体,所以我安装了 Fondu
http://fondu.sourceforge.net/
安装结束说不成功,但后来我还是能用的。
然后我意识到我需要 Rosetta 来运行 Fondu,所以我查看了此页面上的说明。
取出我的 Snow Leopard CD 并安装可选包
http://www.macobserver.com/tmo/article/snow_leopard_installing_rosetta/
打开终端并转到您的字体所在的目录。键入命令:
火锅 [字体文件]
然后你会得到一个提示,询问你是否要保存[字体文件].pfb
选择是。
现在在您的 XCode 中,将 pfb 文件添加到您的项目中。然后转到 info.plist 并将文件添加到 UIAppFonts(包括 .pfb 扩展名)。
我在 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]
这会保留您最初用于标签的字体磅值。我也只有在视图加载后才成功。