有没有人在iPhone上使用自定义otf字体成功?

时间:2009-09-03 04:14:59

标签: iphone fonts opentype

看起来有一些在iPhone上使用自定义真实字体(ttf)的工作解决方案,最值得注意的是Can I embed a custom font in an iPhone application?但是,此方法不支持开放式字体(otf)。

有没有人遇到过使用otf字体的方法?

6 个答案:

答案 0 :(得分:70)

答案 1 :(得分:22)

您必须在设备上使用otf字体,还是可以将其转换为ttf?使用诸如fontforge之类的工具将OTF字体转换为TTF字体相对简单,这可能是一个简单的解决方案。

答案 2 :(得分:17)

我也遇到了麻烦。这对我有用:

  1. 将字体文件复制到资源中。
  2. 检查字体文件是否在“构建阶段” - >“复制捆绑资源”(当我将文件添加到资源时,Xcode将它们放在那里。如果出于某种原因,它们不在那里,添加它们。
  3. 如上所述,将文件名添加到info.plist文件中。包括扩展名。
  4. 打开字体簿,选择字体和预览 - 显示字体信息,然后查看“家庭”,例如“Foo”
  5. 将此代码置于代码中并设置断点以检查名称数组:NSArray *names = [UIFont fontNamesForFamilyName:@"Foo";
  6. 运行您的应用程序,当它崩溃时,右键单击调试器中的“names”变量。这将显示要使用的字体名称,例如:<__NSCFArray 0xe9c4da0>( Foo-100Italic, Foo-100 )
    请注意,我的字体名称未显示 正确地在其他地方,不在文件名中或字体书中。
  7. 你应该乐于助人:
    myLabel.font = [UIFont fontWithName:@"Foo-100Italic" size:24];

答案 3 :(得分:7)

这篇文章回答了你的问题(它对我来说就像使用OTF的魅力): http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/

完全支持OTF,无需转换为TTF

答案 4 :(得分:3)

关于第一个答案 - 解决方案是正确的(即只是将字体转换为TTF),但建议的软件编译和安装非常麻烦。相反,我只是做了一个快速的谷歌搜索并使用了这个:http://www.freefontconverter.com/并且完美无缺。

(确保将字体添加到info.plist文件中)

答案 5 :(得分:2)

我彻底研究了这个,这是我找到的最好的方法:

1)使用此在线工具将字体文件转换为TTF:http://www.freefontconverter.com/

2)将TTF文件添加到项目中

3)对info.plist文件进行一些配置:

3.1)编辑info.plist作为源代码(右键单击文件 - &gt;打开为 - &gt;源代码)

3.2)添加:

 <key>UIAppFonts</key>
 <array>
  <string>font1.ttf</string>
  <string>font2.ttf</string>
  ...etc...
 </array>

3.3)你的info.plist现在应该有这个:

info plist should look like this now

4)使用新字体,就像系统字体一样:

[UIFont fontWithName:@“font1”size:16.0];

(注意字体名称中没有“.ttf”)