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