iOS 12上图标字体无法显示

3
我遇到了一个问题,iOS 12上无法显示图标字体(在iOS <= 11上可以正常工作)。以下是我找到的一些细节以及我们如何使用该字体:
1)该字体已正确包含在项目中,并且当NSlogging [UIFont familyNames]和[UIFont fontNamesForFamilyName:iconFontFamilyName]时,它会出现。
2)我使用\u符号访问图标:label.text = @"\uXXXX"。当XXXX不存在于字体中时,应用程序会显示“方框中的问号”,表示代码不存在(正确)。但是,如果代码存在于字体中,则应用程序根本不显示任何内容-相应元素为空白。
这里有什么我们错过的东西吗?

你在其他地方试过你的字体了吗? - Vyacheslav
问号在方框中也只是一个符号而已。可能你的字形没有得到正确的大小。 - Vyacheslav
@Vyacheslav 相同的图标字体在 iOS 11(或更低版本)上表现得非常好,所以我猜测这是一个 iOS 12 的问题。 - spassas
我知道我的自定义字体(几个字形)在iOS 10中正确显示,但在iOS 11中不是。我建议检查字形。 - Vyacheslav
你是如何创建字体的?使用哪种文件格式? - jjrscott
@jjrscott 这是使用IcoMoon创建的.ttf文件。 - spassas
1个回答

2
总之,问题很可能出在Icomoon的字体生成上,具体来说是cmap编码子表的类型。我建议采取以下两个行动:
  1. 使用字体转换工具(如https://onlinefontconverter.com)将你的ttf文件转换为otf格式(iOS也支持这种格式),以测试这个假设。
  2. 如果你的字形显示正常,则继续使用新的otf文件并直接向IcoMoon提出问题。
我记得在我的MinimumRubber项目中尝试在设备上生成字体时遇到过类似的问题。我发现为了让UILabelUITextView都能显示字形,需要仔细选择平台标识符和特定于平台的编码标识符。苹果公司重构了这个代码区域并不让我感到惊讶。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接