Динамически настраивать высоту UITextView в зависимости от его содержимого?

У меня есть UITextView, который загружает разный текст в зависимости от маршрута, который выбрал пользователь, чтобы перейти к представлению с текстом на нем.

Как мне динамически регулировать высоту UITextView в зависимости от его содержимого с помощью Swift?


person Daniel Bramhall    schedule 11.06.2015    source источник
comment
Я видел это, но я спрашиваю конкретно о Swift :)   -  person Daniel Bramhall    schedule 11.06.2015
comment
Просмотрите ответы на этот вопрос, вы увидите быстрое решение] для того же :) stackoverflow.com/a/28916825/3950397 < / а>   -  person Sahil Kapoor    schedule 11.06.2015


Ответы (1)


Установите ограничения так, чтобы края были закреплены, но позволяли текстовому представлению увеличиваться по вертикали. Затем установите ограничение по высоте (значение здесь не имеет значения). Создайте @IBOutlet для UITextView и ограничения высоты. Затем мы можем динамически изменять высоту в коде:

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
    }

}
person keithbhunter    schedule 11.06.2015
comment
что, если текстовое представление находится в ячейке табличного представления? - person Utku Dalmaz; 09.05.2019