【问题标题】:Load font in iOS 11 (or Xcode 9)在 iOS 11(或 Xcode 9)中加载字体
【发布时间】:2018-03-01 22:14:31
【问题描述】:

我一直在使用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)

【问题讨论】:

    标签: ios swift fonts


    【解决方案1】:

    我也遇到了同样的问题,自定义 Futura 字体也是如此。

    我使用软件 Birdfont (https://birdfont.org/ *) 将字体重命名为不同的字体(不是以 Futura 开头,只是一个以大写开头的单词)。以及更改文件名,但真正重要的是更改字体元数据中的字体名称。

    然后我将重命名的字体链接到 iOS 应用程序,它就可以工作了。我不知道为什么会出现 Futura 的问题,但是这个技巧解决了这个问题。

    *注意:如果由于某些原因 Birdfont 不适合您,还有 FontForge (http://fontforge.github.io/en-US/)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 2018-03-01
      • 2018-03-05
      • 2012-04-27
      • 2018-03-25
      • 2018-03-04
      • 1970-01-01
      相关资源
      最近更新 更多