Как сбросить высоту UITextView - PullRequest
0 голосов
/ 13 октября 2019

У меня есть экран чата, где у меня UITextView ниже табличного представления. Я установил UITextView высоту <= 150 в IB. Я позволяю этому текстовому виду изменять размер и прокручивать текст при наборе текста. </p>

После отправки сообщения и перезагрузки табличного представления высота текстового представления остается равной 150 и не сбрасывается до исходного размера.

Как мне сбросить эту высоту после перезагрузки таблицы?

Я пробовал следующее решение после отправки сообщения, которое сбрасывает высоту текстового представления, но нарушает автоматическое изменение высоты, когда я снова печатаю в текстовом представлении.

@IBOutlet weak var textViewHeightConstraint: NSLayoutConstraint!
//....
self.textViewHeightConstraint.constant = self.textView.contentSize.height

1 Ответ

0 голосов
/ 14 октября 2019

Соответствует UITextViewDelegate и реализует textViewDidChange:

- (void)textViewDidChange:(UITextView *)textView
{
    CGFloat minHeight = 30;
    CGFloat maxHeight = 150;
    CGFloat height = ceil([textView.text sizeWithAttributes:@{NSFontAttributeName : textView.font}].height);
    if(height < minHeight){
        height = minHeight;
    }else if (height > maxHeight){
        height = maxHeight;
    }
    self.textViewHeightConstraint.constant = height;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...