我在 textView 中有一个阿拉伯语(从右到左)文本,当我设置 时myTextView.alignment = .justify
,文本中的最后一行转到左侧。如何为 textView 设置中心对齐或如何将最后一行移动到中心?
问问题
1081 次
3 回答
1
用这个
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
于 2019-07-23T07:08:50.673 回答
0
就做吧
于 2017-08-06T06:10:01.463 回答
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.")
当然,由于行尾的空闲空间,您应该花更多的时间进行计算...
于 2017-08-06T11:02:22.050 回答