2010-07-05 46 views
4

我尝试在iOS4应用中使用字体手提箱来定制字体,但没有取得任何成功。带有字体手提箱的iPhone自定义字体

我已阅读,记录了如何使用自定义字体,因此复制了手提箱到我的项目的其他职位,将其添加到资源和Info.plist的阵列“ 字体由应用程序提供的”,并试图用它在Interface Builder和代码中。但它不起作用!

我发现的关于自定义字体的所有示例都显示了将它们与ttf或otf文件一起使用,但与手提箱无关。可以做到吗?如果没有,我怎样才能从字体书中找到可以用作自定义字体的文件结构?

回答

-1

首先将SystemConfiguration框架包含到您的项目中。并根据您的要求添加ttf或otf文件。然后导入dlfcn.h文件来委托实现文件。然后您必须在图像alt text中附加后调用该功能。

然后你可以在你想要使用自定义字体的地方访问你的控制器。您只需在UIFont的fontwithName:方法中传递字体。

+0

这并没有回答这个问题,这是关于使用(pre-OpenType)手提箱格式字体的问题。 – 2011-02-08 19:45:24

7

我有同样的问题,只是解决了它。朋友给了我几个字体压缩,我解压缩,然后文件大小为零kb,我不能将它们安装到字体书。 所以我搜索了一下,发现我的朋友应该使用StuffIt Expander来压缩。于是他又把文件发给我,我用StuffIt Expander解压。然后我可以将字体安装到我的Font Book中。

但是,字体仍然不适用于我的iOS应用程序。所以下面是我做过什么:

  1. 我发现我需要的字体转换,所以我安装Fondu http://fondu.sourceforge.net/ 安装最后说并不成功,但后来我仍然能够使用。

  2. 然后我意识到我需要Rosetta来运行Fondu,所以我查看了此页面上的说明。 得到了我的雪豹光盘拿出来,并安装可选包 http://www.macobserver.com/tmo/article/snow_leopard_installing_rosetta/

  3. 打开终端,并转到您的字体所在的目录。输入命令: fondu [字体文件] 然后,您将收到一个提示,询问您是否要保存[字体文件] .pfb 选择是。

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

  5. 我测试字体在一个UITableViewCell

cell.textLabel.font = [UIFont fontWithName:@ “[字体文件]” 大小:30]; //不包含.pfb扩展名

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

希望这会有所帮助。

附加测试提示: 一旦添加了UIAppFonts的plist阵列,如上图所示在appDidFinishLaunchingWithOptions方法和在控制台上键入

po [UIFont familyNames] 

,让你安装的字体列表,以便搜索添加一个断点您字体系列名称。复制并粘贴到此:

po [UIFont fontNamesForFamilyName:@"familyname"] 

这会得到您在代码中引用的字体名称。我没有尝试[字体文件名]的方法,但这给你的名称应用程序用来引用你想要的确切字体。当字体包含一系列变体或者您从同一系列中安装多个变体时,这很重要。例如,helvetica有四种变体,所以你可以这样选择正确的一种:

lblMyLabel.font = [UIFont fontWithName:@"fontname" size:lblMyLabel.font.pointSize] 

例如,

lblMyLabel.font = [UIFont fontWithName:@"Helvetica-Oblique" size:lblMyLabel.font.pointSize] 

这会保留原来用于标签的字体点大小。一旦视图加载,我也只有成功。