为什么(阿拉伯语和英语)文本拒绝正确对齐?

Dey*_*een 3 alignment uilabel ios swift

这是我使用的字符串:

情况1

    var word1 = "??? ????"
    var word2 = "restaurant"
    label.text = " \(word1) found your review on \(word2) useful."
Run Code Online (Sandbox Code Playgroud)

结果:

一种

案例2

    var word1 = "??? ????"
    var word2 = "restaurant"
    label.text = "note: \(word1) found your review on \(word2) useful."
Run Code Online (Sandbox Code Playgroud)

结果:

b

那么,我该如何使第一个单词自动换行呢?如果第一个单词是阿拉伯语,它会被包裹在左边,但是如果第一个单词是英语,这是可以预料的,那么当第一个单词在左边时,如何使word1出现呢?

我都尝试过

label.textAlignment = NSTextAlignment.Left
Run Code Online (Sandbox Code Playgroud)

label.textAlignment = NSTextAlignment.Natural
Run Code Online (Sandbox Code Playgroud)

没有任何运气。

Dey*_*een 5

Unicode具有两个标记字符(LTR:0x200E,RTL:200F)。这些是不可见的,但是可以控制方向,我只需要添加此值\u{200E}即可强制环绕方向。

 \u{200E} \(word1) found your review on \(word2) useful.
Run Code Online (Sandbox Code Playgroud)