首先,StackOverflow上有很多问题,但没有一个完全回答这个问题 .

问题主要是,但很可能不仅限于使用UILabel的text属性使用自定义拉丁语字体渲染时的泰语和阿拉伯语变音符号 . 这在自动布局中也具有内在大小 . 我已经完成了Apple建议的所有内容,使用文档中提到的设置,WWDC视频以及StackOverflow上的问题(例如clipsToBounds = NO等) . 请记住,我的场景中只有我的自定义字体设置剪辑,而不是iOS系统字体(.SF-UIDisplay),甚至iOS系统也没有提供Helvetica或Helvetic Neue . 自定义字体已经过检查和重新检查,在这一点上得出结论,iOS是所有平台的异常,甚至是macOS . 为了更清楚,使用SF Pro可以看到与自定义字体相同的剪切行为,这是Apple自己在这里提供的字体:https://developer.apple.com/fonts/

这个问题是关于最合适,最少侵入性和最完整的方法来做不必削减变音符号的必要条件 . 意思是,从理论上讲,你将如何从头开始做到这一点 .

我所有的字体研究和测试运行都让所有参与此问题的人都相信Apple已经在UILabel中专门针对他们的系统字体实施了特殊处理,以避免变音剪辑 . 所以做出这个假设,我也假设字体没问题,我正在寻找不涉及编辑字体的解决方案 .

在我尝试使用该字体时,首先出现的问题是垂直剪切泰国字形的上升变音:

นื้ทั้มูHello

这意味着Thonburi字体从自定义拉丁文字体级联时的字形 . 从这一点来看,修复是使用仅适用于没有任何拉丁字符的泰语的自定义字体,因此可以将其定义为主要字体,并级联到前面提到的仅限拉丁语的自定义字体 . 毕竟,自定义泰语字体在文本末尾的变音符号上仍然存在水平剪切问题:

Worldฟล์

所以现在我对字体管理木偶可以做的任何事情都感到茫然(尽管仍然接受建议),我正在进行更多以代码为中心的修复 . 我已经看到了很多提及子类UILabel的问题和答案,但我想知道这可能会实现我所描述的内容 .

我还想知道,如果选择退出UILabel,那么任何人都可以选择 . 意思是用TextKit从头开始写一些东西是值得的,以避免所有这些似乎只困扰iOS的错误,特别是UILabel .