带字体手提箱的iPhone自定义字体

Ste*_* Sr 4 iphone ios4 ios

我试图在iOS4应用程序中使用字体手提箱作为自定义字体,但没有取得任何成功.

我已经阅读了其他有关如何使用自定义字体的文章,因此将行李箱复制到我的项目中,将其添加到资源和应用程序数组提供的Info.plist'字体中,并尝试在Interface Builder和在代码中.但它不起作用!

我发现的关于自定义字体的所有示例都显示使用ttf或otf文件,但没有任何手提箱.可以吗?如果没有,我如何从Font Book中获取可以用作自定义字体的文件结构?

top*_*ace 7

我有同样的问题,只是解决了它.朋友给了我一些压缩的字体,我解压缩然后文件大小为零kb我无法将它们安装到Font Book中.所以我用Google搜索并发现我的朋友应该使用StuffIt Expander来压缩.所以他又把文件发给我了,我用StuffIt Expander解压缩.然后我就可以将字体安装到我的Font Book中.

但是,我的iOS应用程序中仍然无法使用这些字体.以下是我的所作所为:

  1. 我发现我需要转换字体,所以我安装了Fondu http://fondu.sourceforge.net/ 安装结果说不成功,但后来我仍然可以使用.

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

  3. 打开终端并转到您的字体所在的目录.输入命令:fondu [font file]然后你会得到一个提示,询问你是否要保存[font file] .pfb选择yes.

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

  5. 我在UITableViewCell中测试了字体

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

字体显示正常.我最初认为iOS将需要一个.ttf文件,但看起来像.pfb也没关系.

希望这可以帮助.

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

po [UIFont familyNames]
Run Code Online (Sandbox Code Playgroud)

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

po [UIFont fontNamesForFamilyName:@"familyname"]
Run Code Online (Sandbox Code Playgroud)

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

lblMyLabel.font = [UIFont fontWithName:@"fontname" size:lblMyLabel.font.pointSize]
Run Code Online (Sandbox Code Playgroud)

例如

lblMyLabel.font = [UIFont fontWithName:@"Helvetica-Oblique" size:lblMyLabel.font.pointSize]
Run Code Online (Sandbox Code Playgroud)

这样可以保留最初用于标签的字体磅值.加载视图后,我也只取得了成功.