iOS应用程序,我们将显示来自服务器的新闻。 使用UIlabel
答案 0 :(得分:4)
Apple正在使用“Unicode双向算法”来呈现文本。 如果字符串中的第一个字符是LTR,则算法将字符串其余部分的表示视为LTR。 如果事先知道字符串RTL的语言,可以使用unicode \ u200F和\ u202c强制RTL对齐。
[NSString stringWithFormat:@"\u200F%@\u202c", @"your string with RTL content"]
[NSString stringWithFormat:@"\ u200E%@\u202c", @"your string with LTR content"]
答案 1 :(得分:3)
这是@Pichirichi的Swift 5.2解决方案:
"\u{200F}\("your string with RTL content")\u{202c}"
"u200E\("your string with LTR content")\u{202c}"
答案 2 :(得分:2)
"arabic text \u200E english text \u200F arabic text \u200E english text"
解决了问题
答案 3 :(得分:0)
这里的一些信息很有帮助:
[[self label] setTextAlignment:NSTextAlignmentNatural];
AutoLayout + RTL + UILabel text alignment
但有时它仍未按预期工作
答案 4 :(得分:0)
斯威夫特 5:
extension String {
func forceUnicodeRTL() -> String {
return "\u{200F}\(self)\u{200E}"
}
}