图标字体未在iOS 12上显示

时间:2018-07-16 16:41:49

标签: ios objective-c xcode uifont ios12

我遇到一个图标字体无法在iOS 12上显示的问题(在iOS <= 11上可以正常使用)。有关我发现的内容以及如何使用字体的更多详细信息:

1)字体正确包含在项目中,并且在NSlogging [UIFont familyNames][UIFont fontNamesForFamilyName:iconFontFamilyName]

时显示。

2)我正在使用\ u符号label.text = @"\uXXXX"访问图标。当XXXX的字体中不存在时,该应用会显示“正方形问号”,(正确)指示该代码不存在。但是,如果字体中存在代码 DOES ,则该应用程序什么也不显示-相应的元素显示为空白。

我们这里缺少什么吗?

1 个答案:

答案 0 :(得分:2)

总而言之,此问题最有可能与Icomoon的字体生成有关。特别是cmap编码子表的类型。我建议采取两项行动:

  1. 通过使用字体转换工具(例如https://onlinefontconverter.com)将您的ttf文件转换为otf(iOS也支持)来测试此假设。
  2. 如果显示字形,则继续使用新的otf文件,同时直接引发IcoMoon问题。

我记得在MinimumRubber project中使用设备上的字体生成时遇到过类似的问题。我发现UILabelUITextView都需要仔细选择平台标识符和特定于平台的编码标识符才能显示该字形。 Apple重构了这段代码并不奇怪,