我想使用一些不属于iPhone OS的字体。我见过使用非标准字体的游戏。我可以安装字体,在Photoshop中为每个字体创建图像,然后在iPhone应用程序中使用这些图像。但是,我认为这不是一个实用的方法。如果需要调整颜色或色调(因为背景)或大小,我将不得不重新设计我正在使用的每种字体。有更好的方法吗?
我读了这个Can I embed a custom font in an iPhone application?并下载了开源字体标签应用。但是,当我尝试使用特定字体时,它大部分时间都会崩溃。关于使用带有fontWithName:size的UIFont的最后评论,这当然不起作用。你的字体变量是零。列出所有可用字体显示原因 - 列表中没有任何自定义字体。
我也读过How do I include a font with my iPhone application?,这绝对不行。与上述链接中的最后一条评论相同。
答案 0 :(得分:7)
正确答案是使用FontLabel,可以在GitHub上找到。 http://github.com/zynga/FontLabel
我在几个真实世界的项目中使用过该代码,这绝对是太棒了。
<强>更新强>
从iOS 3.2(仅适用于iPad)开始iPhone上的iOS 4,您可以在应用程序包中打包TTF字体。使用UIAppFonts键将它们输入Info.plist后。
这里有三步说明: http://kgriff.posterous.com/45359635
答案 1 :(得分:3)
解决方案是在info.plist文件中添加一个新属性“应用程序提供的字体”。
然后,您可以像普通的UIFont一样使用自定义字体。
答案 2 :(得分:2)
实际上这很容易。
您将ttf包含在应用包中。您可以将Fonts provided by application
/ UIAppFonts
密钥添加到您的应用程序中,这是您包含的字体(包括扩展名)的文件名数组,例如:
您可以使用UIFont
轻松使用字体:
self.label.font = [UIFont fontWithName:@"Wingdings" size:23.0f];
这适用于3.2版的所有iOS版本,包括iOS 4上的iPhone。
答案 3 :(得分:0)
这可能不是一个直接的答案,但似乎将来,您可以将自定义字体作为应用程序的一部分包含在内:
UIAppFonts(Array - iPhone OS)指定应通过常规机制提供的任何应用程序提供的字体。数组中的每个项都是一个字符串,其中包含位于应用程序包中的字体文件的名称(包括文件扩展名)。系统会加载指定的字体,并在运行该应用程序时使其可供应用程序使用。
不幸的是,这仅适用于iPhone OS 3.2,这是iPad特定版本。在将来的iPhone OS版本中,这个功能似乎很有可能。
(这是我在Apple网站上找到的唯一公开文件)