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

Ios 如何在UITextView中居中对齐文本?,ios,swift,swift3,uitextview,text-justify,Ios,Swift,Swift3,Uitextview,Text Justify,我在textView中有一个阿拉伯语(从右到左)文本,当我设置myTextView.alignment=.justify时,文本中的最后一行转到左侧。如何设置文本视图的中心对齐,或者如何将最后一行移动到中心?只需将其设置为中心即可 我知道你到底在找什么,因为我以前去过那里,只有你能做到。中心有趣的问题,我会尝试数一数文本视图中的行并剪切最后一行,而不是尝试将剪切的文本放在文本视图下的新标签中……;) 在询问我将如何做到这一点后,我补充道: print(self.testLabel.frame.w

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

只需将其设置为中心即可
我知道你到底在找什么,因为我以前去过那里,只有你能做到。中心

有趣的问题,我会尝试数一数文本视图中的行并剪切最后一行,而不是尝试将剪切的文本放在文本视图下的新标签中……;)

在询问我将如何做到这一点后,我补充道:

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.") 

当然,您应该在计算中花费更多的时间,因为行尾有空闲空间…

使用此选项

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

不能同时使用居中和对正??不,你不能,否则开发者将被允许同时使用。right和。left使用此选项来计算行数(末尾是swift3):只返回最后一个单词而不是最后一行:(你错了..lastLine=“(arr.last)(lastLine)”扩展字符串。(在开头添加一个新词)