UIFont.fontName in iOS10 没有 return "regular" 后缀

UIFont.fontName in iOS10 doesn't return "regular" suffix

在我的应用程序中成功迁移到 swift 2.3 后,我发现了一个字体故障。

我有 UIFont 的扩展,我将系统字体更改为我的自定义字体。 在 iOS 9 及更早版本中,一切都按预期进行。在 iOS 10 中没有。

问题出在 self.fontName。通常它应该 return "fontName" + 样式后缀(例如:常规、粗体等)。

但是在iOS 10中对于常规样式,它没有return后缀只有"fontName"。

我用谷歌搜索找到了原因,但什么也找不到。 问题已解决,但我不知道为什么会这样。有什么想法吗?

使用字体名称从来都不是一个好主意。

使用 fontDescriptor 并检查 UIFontDescriptorfontAttributessymbolicTraits 以获得有关字体的信息。然后,您可以创建一个具有修改属性 and/or 特征的新描述符,并使用 init(descriptor:size:).

获得具有该描述符的字体