屏幕加载时如何强制UITextView文本垂直和水平居中?

时间:2018-07-02 19:20:46

标签: ios swift xcode uikit uitextview

我一直试图在应用程序启动后将文本垂直居中放置在UITextView中,但未成功。无论我尝试了什么,文本都像通常那样显示在文本视图的顶部。这是照片。

goal text view

只有当我键入文本时,文本才能正确居中,这是使用观察者完成的。这是我用来在viewDidLoad中居中放置文本的代码,我尝试了2种方法,均无效。

extension UITextView {

    func centerText() {
        self.textAlignment = .center
        let fittingSize = CGSize(width: bounds.width, height: CGFloat.greatestFiniteMagnitude)
        let size = sizeThatFits(fittingSize)
        let topOffset = (bounds.size.height - size.height * zoomScale) / 2
        let positiveTopOffset = max(1, topOffset)
        contentOffset.y = -positiveTopOffset
    }

    func alignTextVerticallyInContainer() {
        var topCorrect = (self.bounds.size.height - self.contentSize.height * self.zoomScale) / 2
        topCorrect = topCorrect < 0.0 ? 0.0 : topCorrect;
        self.contentInset.top = topCorrect
    }
}

我会这样在viewDidLoad中调用这些方法:self.goalTextView.centerText()self.goalTextView.alignTextVerticallyInContainer()。因此,既然您已经了解了到目前为止我已经尝试过的内容,那么任何人都不知道如何在启动时强制将textview中的文本垂直居中?任何帮助将不胜感激。

0 个答案:

没有答案