我在textView中有一个阿拉伯语(从右到左)文本,当我设置myTextView.alignment = .justify
时,文本中的最后一行会转到左侧。如何为textView设置中心对齐方式或如何将最后一行移到中心?
答案 0 :(得分:0)
只需要它.center 我知道你到底在找什么,因为我以前去过那里,只有你能成功。中心
答案 1 :(得分: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.")
当然,由于线末端的自由空间,你应该花更多的时间在计算中......
答案 2 :(得分:0)
使用此
self.textView.textAlignment = .justified //set text alignment center and justified
self.textView.makeTextWritingDirectionRightToLeft(true)//if you want set writing direction right to left
self.textView.makeTextWritingDirectionLeftToRight(true)//if you want set writing direction left to right