ios - 在 iOS 11(或 Xcode 9)中加载字体

标签 ios swift fonts

我使用 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/

相关文章:

ios - UIButton 上的 UILabel 突变导致文本不显示/显示对齐错误

ios - 为什么我的高分无法保存?

ios - indexedDB 在 iOS 上表现不佳?

ios - View 层次结构没有为约束做好准备

ios - NSNotification 不重新加载表数据

swift - 我看不到 firebase swift 的值(value)

css - 在 CSS 中设置字体大小时,字母的实际高度是多少?

ios - 如何在 Xcode Playground 中实现自定义字体

html - CSS:在所有元素中按比例放大自定义字体

ios - 在适用于 IOS 的 Google Map SDK 中,如何在不设置动画的情况下更改 map 的方位?