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

BP.*_*BP. 30 iphone fonts opentype

看起来有一些在iPhone上使用自定义真实字体(ttf)的工作解决方案,最值得注意的是我可以在iPhone应用程序中嵌入自定义字体吗? 但是,此方法不支持开放式字体(otf).

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

小智 70

对于我自己的项目,我想使用opentype字体,我基本上使用这个方法:

使用XCode作为资源将自定义字体文件添加到项目中将信息添加到info.plist文件中(应用程序提供的字体)对于您拥有的每种字体,输入字体文件的全名(包括扩展名)保存信息. plist然后用它作为你的标签(ex :)

UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];
Run Code Online (Sandbox Code Playgroud)

在我的例子中@"Harrowprint"是没有扩展名的文件名,而不是Finder提供的字体名称.

我的字体是otf并且它有效...所以我猜它得到支持......或者我很幸运.我将测试另一种字体..并让你发布..

引用:

  • 这应该是公认的答案.接受的答案更多的是不必要的解决方法. (7认同)

Joe*_*orn 22

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

  • 这个链接http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/是最有用的,如下所述,无需将.otf转换为.ttf,此链接有帮助我使用客户提供的.otf. (4认同)

小智 17

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

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


eta*_*luz 7

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

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