为什么自定义字体通常无法在iOS中正确显示?

Mic*_*ine 9 fonts custom-font ios

我用自定义字体创建了许多不同的应用程序.我使用了大约六种不同的,都来自不同的来源.在iOS中显示时,每个都有问题.对于其中一些,他们在UILabels中绘制的数字高于或低于相同大小的系统字体.其他人在UILabels中的表现与他们在UITextFields中绘制的方式相比有所不同,在UITextFields中绘制得越来越小.实际上,当它们被编辑时,它们在UITextFields中的绘制方式与它们不相同时的绘制方式不同,当UITextField进入编辑模式时,会产生向下跳跃的文本效果.对于那些做细节工作需要像素完美的人来说,这非常糟糕.

我的问题很简单 - 这些字体中的哪些内容会特别导致这些类型的问题? 系统字体是否有某些特定属性,这些其他字体没有?

对于额外的功劳,我很想听到任何可以解决每种字体问题的通用解决方案,如果可能的话.我希望如果我能理解为什么会发生这种情况,我可以创建一个脚本来预处理字体,然后再将其打包到应用程序中,以便它能正常工作.

这些问题很容易重现,但是因为我知道有人会问,我会列出一些对我有问题的特定字体:

  • PT Sans Bold
  • Avenir Next LT Pro中浓缩
  • Korolev Condensed Medium

NST*_*STJ 1

您是否尝试过使用Apple Font Tool Suite命令行实用程序?您可以用它调整字体的基线属性(我承认这并不能回答您问题的“为什么”部分,但是这些工具可能会使问题变得毫无意义)。这里接受的答案很好地解释了它们的用法。