Как заставить текст UITextView центрироваться вертикально и горизонтально при загрузке экрана? - PullRequest
0 голосов
/ 02 июля 2018

Я безуспешно пытался центрировать мой текст по вертикали в моем 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(). Итак, теперь, когда вы увидели то, что я пробовал до сих пор, у кого-нибудь есть идеи, как заставить текст в текстовом представлении центрироваться вертикально при запуске? Любая помощь будет оценена.

...