如何在UITextView中居中对齐文本?

问题描述:

我在textView中有一个阿拉伯语(从右到左)的文本,当我设置myTextView.alignment = .justify时,文本中的最后一行会进入左侧。我如何设置textView的中心对齐或如何将最后一行移动到中心?如何在UITextView中居中对齐文本?

只是使它.center 我知道你在寻找什么,因为我以前去过那里,只是你可以把它.center

+0

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

+2

不,你不能,否则开发人员将被允许同时使用.right和.left –

有趣的问题,我会尝试以统计线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

,只是返回最后一个字不是最后一行:( –