Я хочу выровнять по вертикали текст внутри моего UITextView (так что он будет посередине).
Как я могу это достичь?
Я поднял глаза и не мог найти ответа, который мог бы мне помочь.
Спасибо заранее.
Ответ 1
Свяжите текстовое представление с вашим viewcontroller и назовите его как хотите (скажем, textView).
В функции viewDidLayoutSubviews вставьте эту строку:
textView.centerVertically()
Затем под последней фигурной скобкой вашего класса поместите это расширение:
extension UITextView {
func centerVertically() {
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
}
}
Чтобы использовать эту функцию для swift2, просто измените CGFloat.greatestFiniteMagnitude на CGFloat.max
Ответ 2
Если вы хотите сделать это с помощью раскадровки, вы можете добавить представление внутри вашего textView. Затем установите ограничения, которые вы использовали для textView для нового представления. Наконец, добавьте следующие ограничения в текстовое представление:
(вправо и влево) O и укажите на новый вид
используя ограничения выравнивания, добавьте ограничение по вертикали.