Регулировка высоты UITextView при ограничении высоты - PullRequest
0 голосов
/ 25 августа 2018

У меня есть messageTextView в другом UIView, называемом messageView. Первоначально обе высоты ограничений равны 50 (задается в UIStoryBoard). Цель состоит в том, чтобы увеличить их высоту до 100.

Поэтому, когда пользователь вводит текст в messageTextView, его высота должна соответствовать на основе введенного текста, увеличивайте высоту messageView в соответствии с высотой messageTextView, НО до 100 точек.

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

На основании моего текущего кода высота увеличивается, но она превышает предел в 100 пунктов.

@IBOutlet weak var messageView: UIView!
@IBOutlet weak var messageViewHeightConstraint: NSLayoutConstraint!
@IBOutlet weak var messageTextView: UITextView!
@IBOutlet weak var messageTextViewHeightConstraint: NSLayoutConstraint!

extension MessageLogVC : UITextViewDelegate {

func textViewDidChange(_ textView: UITextView) {
    let width = messageView.frame.width - attachImageView.frame.width - sendImageView.frame.width
    let size = CGSize(width: width, height: 100)
    let estimateSize = textView.sizeThatFits(size)
    if messageViewHeightConstraint.constant < estimateSize.height {
        messageViewHeightConstraint.constant = estimateSize.height
        messageTextViewHeightConstraint.constant = estimateSize.height
    }
    if messageViewHeightConstraint.constant > estimateSize.height {
        messageViewHeightConstraint.constant = 50
        messageTextViewHeightConstraint.constant = 50
    }
}
}

Другая проблема, которую я вижу, - это странное поведение (из-за отсутствия лучшего слова), которое я вижу, когда вы начинаете удалять текст. Не уверен, как это исправить:

Weird behaviour while deleting text

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...