我有一个UILabel
,里面有RTL阿拉伯文字。只要不更改lineBreakMode
,一切都会正确显示。为了避免在我试图在左边缘显示渐变蒙版时避免显示椭圆字符,我需要裁剪而不是byTruncatingTail
。
我曾尝试更改contentMode
,alignment
等,但没有帮助。标签的右侧似乎是从中间某处开始的文本,而不是从头开始(即,文本中最右边的字符)。
这是我在lineBreakMode = .byClipping
中看到的内容
这就是删除lineBreakMode
时看到的内容>
这里是代码
let arabicLabel = UILabel(frame: .zero)
arabicLabel.semanticContentAttribute = .forceRightToLeft
arabicLabel.numberOfLines = 1
//arabicLabel.lineBreakMode = .byClipping
arabicLabel.text = "عِنْدَمَا1 عِنْدَمَا2 عِنْدَمَا3 عِنْدَمَا4 عِنْدَمَا5 عِنْدَمَا6 قَدِمْتُ عَلَى (صَاحِبِي) عِنْدَمَا7 عِنْدَمَا8 عِنْدَمَا9 عِنْدَمَا10 عِنْدَمَا عِنْدَمَا قَدِمْتُ عَلَى (صَاحِبِي)"
arabicLabel.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(arabicLabel)
我有一个带有RTL阿拉伯文本的UILabel。只要我不更改lineBreakMode,一切都会正确显示。我需要剪切而不是byTruncatingTail,以避免显示...
在浪费足够的时间后,我通过覆盖drawText
并添加任意数量的填充有效地隐藏了椭圆字符并为RTL和LTR对其进行了处理,从而以ugly