某些乌尔都语字符无法在 UITextView 上正确呈现

Some Urdu characters not rendering correctly on UITextView

我在 UITextView 上呈现乌尔都语时遇到问题。我使用 NSAttributedString 来呈现文本,但是使用 Jameel-Noori-Nastaleeq 样式 RegularAlviLahoriNastaleeq 时,某些字符显示效果不佳字体。您可以在第一张图片中看到第二行中的字符如何未正确呈现

这是另一个参考屏幕截图,请参阅第 5 行和第 13 行,其中某些字符未正确呈现。

我试过的

1- 有一些字符显示效果不佳,例如 ["بڑ", "ئò", "ьò", "ڈ", "ò"] I 尝试使用本教程 [Find and Return The Ranges of All the Occurrences of a Given String in Swift][3] 来查找这些字符的所有出现 然后将所有这些出现的字体更改为 Jameel-Noori-Nastaleeq-Kasheeda 因为这个小改动不会影响整体外观,但是在字符串中查找所有出现的单个字符不起作用在乌尔都语中很好,但只有在我们找到第一次出现的情况下,使用 string.range(of: "ئز").

才能很好地工作

我已经测试过使用上述教程方法找到所有出现的英语子字符串,这些子字符串运行良好。 . [3]: https://betterprogramming.pub/find-and-return-the-ranges-of-all-the-occurrences-of-a-given-string-in-swift-2a2015907a0e

2- 使用 Jameel-Noori-Nastaleeq-Kasheeda 可以很好地呈现文本,但我必须使用 Jameel-Noori-Nastaleeq 风格 Regular

是否有任何解决方法可以很好地显示 Jameel-Noori-Nastaleeq 样式 Regular.

中的所有字符

终于解决了,用UILabel代替UITextView

实际上,UILabel 渲染 Jameel Noori Nastaleeq 没有​​任何问题,但在相同的上下文中,UITextView 会导致问题。

根据我的经验,问题在于 UITextView 与 Jameel-Noori-Nastaleeq 和 AlviLahoriNastaleeq 的兼容性 A​​pple 也应该查看此问题.