我使用 Futura-Demi.otf
字体有一段时间了。
通过下面的代码,我可以确认这个文件包含多种字体。
for fname in UIFont.familyNames {
for name in UIFont.fontNames(forFamilyName: fname) {
print(name)
}
}
字体家族为Futura
,包含如下字体:
Futura-CondensedExtraBold
Futura-Dem
Futura-Medium
Futura-Bold
Futura-CondensedMedium
Futura-MediumItalic
到目前为止,我已经将 Futura-Dem
字体与 UIFont(name: "Futura-Dem", size: 21)
一起使用,没有任何问题。但是在iOS 11发布后,我不能再使用这个字体了。所有 Futura-Dem
字体都更改为 Futura-Medium
,即使在 App Store 中的应用中也是如此。
我检查过 UIFont(name: "Futura-Dem", size: 21)
加载的字体是 Futura-Medium
字体,我还发现我可以使用 Futura-Dem
字体和
let des = UIFontDescriptor(name: "Futura-Dem", size: 21)
let font = UIFont(descriptor: des, size: 21)
上面的代码成功加载了 Futura-Dem
但我不知道为什么我不能只使用 UIFont(name: "Futura-Dem", size: 21)
和以前一样。
最佳答案
我也遇到过同样的问题,还有自定义 Futura 字体。
我使用软件 Birdfont (https://birdfont.org/ *) 将字体重命名为不同的东西(不是以 Futura 开头,只是一个以大写字母开头的单词)。还要更改文件名,但真正重要的是更改字体元数据中的字体名称。
然后我将重命名的字体链接到 iOS 应用程序并且它起作用了。我不知道为什么会出现 Futura 的问题,但是这个技巧解决了问题。
*注意:如果由于某些原因 Birdfont 不适合您,还有 FontForge ( http://fontforge.github.io/en-US/)。
关于ios - 在 iOS 11(或 Xcode 9)中加载字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46329032/