根据内容动态调整 UITextView 的高度?

Dynamically adjust the height of the UITextView depending on its content?

我有一个 UITextView 可以加载不同的文本,具体取决于用户为了到达带有文本的视图而采取的路线。

如何使用 Swift 根据其内容动态调整 UITextView 的高度?

设置约束,使边缘固定,但允许文本视图垂直增长。然后设置高度约束(这里的值无关紧要)。为 UITextView 和高度约束创建一个 @IBOutlet。然后我们可以在代码中动态改变高度:

class ViewControler: UIViewController, UITextViewDelegate {

    @IBOutlet weak var textView: UITextView!
    @IBOutlet weak var textViewHeight: NSLayoutConstraint!


    override func viewDidLoad() {
        super.viewDidLoad()
        self.textView.delegate = self
    }

    func textViewDidChange(textView: UITextView) {
        let sizeToFitIn = CGSizeMake(self.textView.bounds.size.width, CGFloat(MAXFLOAT))
        let newSize = self.textView.sizeThatFits(sizeToFitIn)
        self.textViewHeight.constant = newSize.height
    }

}