2017-08-06 128 views
3

我在textView中有一個阿拉伯語(從右到左)的文本,當我設置myTextView.alignment = .justify時,文本中的最後一行會進入左側。我如何設置textView的中心對齊或如何將最後一行移動到中心?如何在UITextView中居中對齊文本?

回答

0

只是使它.center 我知道你在尋找什麼,因爲我以前去過那裏,只是你可以把它.center

+0

不能使用中心和d證明一起? –

+2

不,你不能,否則開發人員將被允許同時使用.right和.left –

0

有趣的問題,我會嘗試以統計線TextView的切最後一個比我會嘗試把切文本在新標籤中的TextView ...下面;)

詢問後,我會怎麼做這個我加了這一點:

print(self.testLabel.frame.width) 
self.testLabel.text = "Hello World" 
self.testLabel.sizeToFit() 
print(self.testLabel.frame.width) 

這是您可以使用的起點。創建一個標籤並將寬度設置爲零。插入你的文本並設置sizeToFit()。現在您可以獲得標籤的長度。是否需要長時間觀看纔會有更多的線條...(分頻器是您的長度 - 未經測試,可能還需要偏移)

只要您的線條多於一個和你的計算開始時的行數是相同的,以得到最後一個單詞並將它放在一個臨時字符串的開頭。 如果這返回你得到你的最後一行的子字符串。

我很感興趣,並開始與這一個:

@IBOutlet weak var textBox: UITextView! 
@IBOutlet weak var testLabel: UILabel! 

override func viewWillAppear(_ animated: Bool) { 
     print(self.testLabel.frame.width) 
     self.testLabel.text = self.textBox.text 
     self.testLabel.sizeToFit() 
     print("total \(self.testLabel.frame.width)") 
     let basicAmount = Int(self.testLabel.frame.width/self.textBox.frame.width) + 1 
     print("lines \(basicAmount)") 
     var lastLine: String = "" 

     while basicAmount == Int(self.testLabel.frame.width/self.textBox.frame.width) + 1 { 
      var arr = self.textBox.text.components(separatedBy: " ") 
      lastLine = "\(arr.last) \(lastLine)" 
      arr.removeLast() 
      self.textBox.text = arr.joined(separator: " ") 
      self.testLabel.text = self.textBox.text 
      self.testLabel.sizeToFit() 
      print(lastLine) 
     } 
    } 

有趣的輸出是:

total 1499.5 
lines 7 
Optional("civiuda.") 

I used this basic text

當然,你應該在因爲計算花費了更多的時間在行尾有空餘空間...

+0

你現在怎麼能在代碼中做到這一點? :) –

+0

用這個來計算行數(最後是swift3):https://stackoverflow.com/questions/5837348/counting-the-number-of-lines-in-a-uitextview-lines-wrapped-by - 框架大小 – John

+0

,只是返回最後一個字不是最後一行:( –