我试图在iOS4应用中使用Font Suitcase作为自定义字体但是没有取得任何成功。
我已阅读其他帖子,其中记录了如何使用自定义字体,因此将行李箱复制到我的项目中,将其添加到资源和Info.plist' 应用程序'数组提供的字体,并尝试在Interface Builder和代码中使用它。但它不起作用!
我发现的关于自定义字体的所有示例都显示使用ttf或otf文件,但没有任何手提箱。可以吗?如果没有,我如何从Font Book中获取可以用作自定义字体的文件结构?
答案 0 :(得分:7)
我有同样的问题并且解决了它。朋友给了我一些压缩的字体,我解压缩然后文件大小为零kb我无法将它们安装到Font Book中。 所以我用Google搜索并发现我的朋友应该使用StuffIt Expander来压缩。所以他又把文件发给我了,我用StuffIt Expander解压缩。然后我就可以将字体安装到我的Font Book中。
但是,我的iOS应用程序仍无法使用这些字体。以下是我的所作所为:
我发现我需要转换字体,所以我安装了Fondu http://fondu.sourceforge.net/ 安装最终说不成功,但后来我仍然可以使用。
然后我意识到我需要Rosetta来运行Fondu,所以我查看了本页的说明。 得到了我的Snow Leopard CD并安装了可选包 http://www.macobserver.com/tmo/article/snow_leopard_installing_rosetta/
打开终端并转到您的字体所在的目录。输入命令: fondu [font file] 然后你会得到一个提示,询问你是否要保存[font file] .pfb 选择是。
现在在您的XCode中,将pfb文件添加到您的项目中。然后转到info.plist并将文件添加到UIAppFonts(包括.pfb扩展名)。
我测试了UITableViewCell
cell.textLabel.font = [UIFont fontWithName:@“[font file]”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]
E.g。
lblMyLabel.font = [UIFont fontWithName:@"Helvetica-Oblique" size:lblMyLabel.font.pointSize]
这样可以保留最初用于标签的字体磅值。加载视图后,我也只取得了成功。
答案 1 :(得分:0)
此解决方案不需要Fondu或Rosetta,但确实需要对macOS的终端应用程序进行一些剪切和粘贴。
非常简单,免费。
答案 2 :(得分:-1)
首先将SystemConfiguration框架包含到您的项目中。并根据您的要求添加ttf或otf文件。然后导入dlfcn.h文件以委托实现文件。然后你必须在图像附加后调用该函数。
然后,您可以在控制器中访问任何您想要使用自定义字体的位置。你只需要在fontwithName:UIFont方法中传递字体。