【发布时间】:2010-11-25 04:16:24
【问题描述】:
看起来有一些在 iPhone 上使用自定义 true type 字体 (ttf) 的可行解决方案,最值得注意的是 Can I embed a custom font in an iPhone application? 但是,此方法不支持开放式字体 (otf)。
有没有人发现使用 otf 字体的方法?
【问题讨论】:
看起来有一些在 iPhone 上使用自定义 true type 字体 (ttf) 的可行解决方案,最值得注意的是 Can I embed a custom font in an iPhone application? 但是,此方法不支持开放式字体 (otf)。
有没有人发现使用 otf 字体的方法?
【问题讨论】:
对于我自己的项目,我想使用opentype字体,我基本上使用了这种方法:
使用 XCode 作为资源将自定义字体文件添加到项目中 在 info.plist 文件中添加一个键(应用程序提供的字体) 对于您拥有的每种字体,输入您的字体文件的全名(包括扩展名) 保存 info.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)")
}
}
【讨论】: