ios - 在 UILabel 上写入 RTL 字符串

标签 ios swift string uilabel

我从服务器接收到两个字符串

firstString = "JHKJ"
secondSctring = "ذيس إز اى تست" 

在 LTR 模式下,我希望标签打印 JHKJ: ذيس إò اى تست 在 RTL 模式下,我希望标签打印 ذيس إò اى تست : JHKJ

如果我通常连接字符串

let finalString = firstString  + ":" + secondSctring

标签在 RTL 和 LTR 上显示相同的结果:

JHKJ:  ذيس إز اى تست

即使我改变连接顺序

if rtl{
finalString =  secondSctring + ":" + firstString
}else{
finalString = firstString  + ":" + secondSctring
}

myLabelView.text = finalString

结果还是一样:

JHKJ:  ذيس إز اى تست 

我还试图强制标签只使用 LTR 模式,但没有帮助。我还尝试使用两个属性字符串并将它们附加到第三个字符串中,但它也没有用。您知道如何在不使用两个标签的情况下解决这个问题吗?

最佳答案

一段时间前我遇到了同样的问题,我设法用

解决了

The 0x200E unicode character is invisible but puts the rendering back into left-to-right mode.

在上面之后,这是我得到的输出:

let firstString = "JHKJ"
let secondSctring = "ذيس إز اى تست"

let finalString = firstString  + ":" + secondSctring

var result1: String = "\u{200E}\(secondSctring) : \(firstString)"
var result2: String = "\u{200E}\(firstString) : \(secondSctring)"

result1 ذيس إز اى تست : JHKJ

result2 JHKJ : ذيس إز اى تست

希望对你有帮助

关于ios - 在 UILabel 上写入 RTL 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46217995/

相关文章:

ios - Facebook iOS 应用 Newsfeed UITableViewCell,他们是如何实现的?

ios - 在 Swift 中将多个 UIButton 添加到多个 UIView

Javascript 正则表达式错误可能需要回顾类型的功能?

python - 用字符串填充空列表元素python

Javascript:将字符串转换为完整的月份到日期对象

ios - for in 循环中的完成处理程序

ios - MKPolyline -> NSKeyedArchiver -> NSData SIGABRT

ios - UIScrollView 中 UILabel 中的像素化文本,均具有透明背景

ios - 约束 UICollectionView 高度以匹配内容的高度

ios - 写自增id