我遇到一个视觉故障时,显示阿拉伯文本在UILabel与文本对齐设置为对齐.具体地说,阿拉伯变音符号(Harakat)被放错了位置,这 destruct 了文本的可读性.这个问题似乎源于S试图证明UILabel‘的内容是正确的,导致了Harakat的错误定位.这个问题可以在不同的字体大小中看到,例如34、36,甚至更多.另外,问题不是由于代码引起的,因为我try 了一个新的代码,只有UILabel和文本.

有趣的是,当我将文本对齐切换到从右到左时,问题消失了,Harakat正确地放置了.然而,我的要求是有理由的文本,以确保一个干净和专业的布局.

有没有人遇到过类似的问题,或者可以提供关于如何在合理的UILabel中保持正确的阿拉伯语变音符号位置的见解?如有任何建议或变通办法,以便在不损害阿拉伯文字完整性的情况下实现合理的对齐,我们将不胜感激.作为参考,以下是您可以在图像上看到的具体文本:

犹太人和纳赛尔不会对你感到满意,直到他跟随他们,说这是god ,是他们从那里回来的时候.作者来找的120个线索是谁,他们首先相信他,谁不相信他,谁不相信他,谁就输了.以色列的儿子们,请记住我赐给你们的恩典,我更喜欢你们,更喜欢你们,每天休息一次,任何人都不会从他们那里得到任何回报.他们没有用嘴说话,也没有用嘴说话,如果god 的公义在他们面前为他们说话,那么我会在他们面前为他们做些什么.他得到了黑暗者的盟约,使我们的家成为人们的坚韧,他们从亚伯拉罕的复活中走到了god 面前.

正确的方式:

The Correct way

The Wrong way: The Wrong way

我已经try 了所有我能想到的方法,比如更改字体,try 在单词之间添加额外的空格,try 在新的代码中使用,try 不同的来源来获取相同的文本.到目前为止,这些方法都没有奏效.

推荐答案

我不能复制这个.我正在测试一台17.2的SIM卡.我将你的文本粘贴到默认故事板的UILabel中,并设置了自动布局约束,使其几乎与屏幕大小相同.我将行设置为0,将换行符设置为换行,将对齐设置为对齐.当我推出它时,它看起来是合理的,Harakat在我看来也是正确的(我的阿拉伯语不是很好,但我可以跌跌撞撞地通过它,知道它的排版是如何工作的).特别是,نْ的布局是正确的.这是使用默认系统字体.我也按照你的建议try 了默认的系统字体,34号,Geeza Pro Regular.

我注意到您的错误文本似乎在第一个单词(وَلَنْ)中包含了thatweel/kashida.您是否亲自插入该对齐点以创建对齐点?我怀疑,如果是这样的话,你可能是把角色的顺序放错了.我认为你的第一个错误布局应该是(如果我搞错了字母表,请原谅我...):

啊-法特-法特-塔-哈!

但或许事实并非如此:

是-深渊-尼姑-tatweel- sukun

我觉得这个纹身是你的错.至少,我认为它会追逐兰法塔,而不是在修女和素坤之间.但我不相信UILabel需要它.通常情况下,阿拉伯字体会插入自己的伸长部分.

我的建议如下:

  • 请确保您的文本与您在本文中包含的文本完全相同.这段文字看起来没问题.
  • 像我一样测试它,在一个简单的故事板中,将文本直接粘贴到内容中.如果这样做奏效了,就从那里开始积累,看看问题出在哪里.
  • 判断文本的UTF-8字节,并验证它是否为您所认为的内容.我个人使用uni(您可以使用类似identify وَلَنْ的命令).

Ios相关问答推荐

AlGolia InstantSearch Swift Package Manager引发编译错误

彩色进度线--SWIFT

通过拖动更改视图位置的SwiftUI会引发UI错误

清除/删除 NavigationController 中的多个 ViewController

封装 Swift 导入

确保方法调配的安全有效实施

Swift/iOS:泛型错误:协议需要嵌套类型V;你想添加它吗?

在 Swift 中使用 UITesting 捕获屏幕录像

如何使用 AppIntents 在 SwiftUI 应用程序中打开特定视图

SwiftUI - ScrollView 不显示底部文本

try 在 iOS 中分发 Flutter 应用程序时出现Invalid Provisioning Profile Signature错误

通过按钮打开 AppStore

如何使用 swift 显示 .svg 图像

构建失败:ld:重复符号 _OBJC_CLASS_$_Algebra5FirstViewController

如何从一个特定的视图控制器中隐藏导航栏

如何在 iOS 的 xib 中设置十六进制 colored颜色 代码

在 Swift 中追加字符串

iOS 7 及更高版本: for each 视图控制器设置状态栏样式

UITableView:从空白部分隐藏标题

这是一个什么样的讽刺错误?