看起来有一些在 iPhone 上使用自定义真实类型字体 (ttf) 的工作解决方案,最值得注意的是我可以在 iPhone 应用程序中嵌入自定义字体吗? 但是,此方法不支持开放式字体 (otf)。
有没有人遇到过使用 otf 字体的方法?
看起来有一些在 iPhone 上使用自定义真实类型字体 (ttf) 的工作解决方案,最值得注意的是我可以在 iPhone 应用程序中嵌入自定义字体吗? 但是,此方法不支持开放式字体 (otf)。
有没有人遇到过使用 otf 字体的方法?
对于我自己的项目,我想使用 opentype 字体,我基本上使用了这种方法:
使用 XCode 作为资源将自定义字体文件添加到项目中 向 info.plist 文件添加密钥(由应用程序提供的字体) 对于您拥有的每种字体,输入字体文件的全名(包括扩展名)保存信息。 plist 然后将其用于您的标签(例如:)
UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];
在我的情况下@"Harrowprint"
,是没有扩展名的文件名,而不是 Finder 提供的字体名称。
我的字体是 otf 并且它有效......所以我想它是受支持的......或者我很幸运。我会测试另一种字体..并让你发布..
参考:
您必须在设备上使用 otf 字体还是可以将其转换为 ttf?使用诸如fontforge之类的工具将 OTF 字体转换为 TTF 字体相对简单,也许这是一个简单的解决方案。
我也遇到了麻烦。这对我有用:
NSArray *names = [UIFont fontNamesForFamilyName:@"Foo";
<__NSCFArray 0xe9c4da0>(
Foo-100Italic, Foo-100 )
myLabel.font = [UIFont fontWithName:@"Foo-100Italic" size:24];
这篇文章回答了你的问题(它对我来说就像使用 OTF 的魅力): http ://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/
完美支持OTF,无需转TTF
关于第一个答案 - 解决方案是正确的(即只需将字体转换为 TTF),但建议的软件编译和安装非常麻烦。相反,我只是做了一个快速的谷歌搜索并改用它: http ://www.freefontconverter.com/并且效果很好。
(确保也将字体添加到您的 info.plist 文件中)
我对此进行了彻底的研究,这是我发现的最佳方法:
1) 使用此在线工具将字体文件转换为 TTF:http ://www.freefontconverter.com/
2) 将 TTF 文件添加到您的项目中
3) 对您的 info.plist 文件进行一些配置:
3.1)将info.plist编辑为源代码(右键文件->打开为->源代码)
3.2)添加:
<key>UIAppFonts</key> <array> <string>font1.ttf</string> <string>font2.ttf</string> ...etc... </array>
3.3)你的 info.plist 现在应该有这个:
4) 像系统字体一样使用新字体:
[UIFont fontWithName:@"font1" size:16.0];
(注意字体名称中没有“.ttf”)
您应该使用字体名称,而不是字体文件名。要获取字体名称,请运行
for family in UIFont.familyNames {
print("font family", family)
for names in UIFont.fontNames(forFamilyName: family) {
print("font name \(names)")
}
}