如何垂直对齐textView中的文本?

Vol*_*kan 17 textview ios swift swift3

我想垂直对齐我的UITextView中的文本(所以它将在它的中间).我怎样才能实现这一目标?我抬起头,找不到任何可以帮助我的答案.

提前致谢.

mik*_*sis 35

将textview链接到viewcontroller并根据需要命名(比如textView).

viewDidLayoutSubviews函数中放这行:

textView.centerVertically()
Run Code Online (Sandbox Code Playgroud)

然后在你的类的最后一个花括号下放这个扩展名:

  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
    }

}
Run Code Online (Sandbox Code Playgroud)

要使用此功能swift2只需更改CGFloat.greatestFiniteMagnitudeCGFloat.max

  • 这个答案很好,只需将该代码放在控制器中superview或viewdidlayoutsubviews的layoutsubviews中 (3认同)