2017-09-14 83 views
1

寫RTL字符串我收到兩個字符串從服務器上一個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模式,它沒有幫助。我也嘗試使用兩個屬性字符串並將它們追加到第三個字符串中,但它也不起作用。你有沒有使用兩個標籤如何解決這個問題的想法?

+0

您能發送一段代碼嗎?你嘗試過這種語法:'print(「\(firstString):\(secondSctring)」)'? –

+0

我不打印文本,我將它添加到lableView – Mbf

回答

1

前一段時間我面臨同樣的問題,我的管理符合

的0x200E Unicode字符是無形的,但把渲染回左到右的方式來做到這一點。

以上之後,這是我得到的輸出:

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:ذيسإز اىتست

希望它對您有所幫助