1

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

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

我试过的

1- 有些字符看起来不太好,即[“بڑ”,“ئز”,“یز”,“ڈ”,“ز”]我尝试使用本教程找到这些字符的所有出现[查找并返回Swift 中给定字符串的所有出现的范围][3] 然后将所有这些出现的字体更改为Jameel-Noori-Nastaleeq-Kasheeda,因为这个小更改不会影响整体外观,但会找到单个字符的所有出现in a string 在 urdu 中效果不佳,但只有在我们找到第一次出现的情况下,使用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中很好地显示 Urdu 的所有字符。

4

1 回答 1

0

终于解决了,用UILabel代替UITextView

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

根据我的经验,问题在于 UITextView 与 Jameel-Noori-Nastaleeq 和 AlviLahoriNastaleeq 的兼容性,Apple也应该关注这个问题。

于 2021-09-16T04:04:16.720 回答