Я пытаюсь управлять представлениями на своем экране, чтобы все представления обновлялись в соответствии с текстовым представлением, которое растет в зависимости от введенного текста.
В представлении моего контроллера у меня есть два подпредставления. Назовем их view1 и view2. View1 имеет подвид uitextview, который увеличивается и уменьшается в зависимости от введенного текста.
Проблема, с которой я сталкиваюсь, заключается в том, что view1 и view2 не увеличиваются и не уменьшаются при наборе текста. Константа ограничения для вертикального интервала снизу в текстовом представлении была установлена на 10 пикселей из его суперпредставления. Расстояние по вертикали между view1 и view2 установлено равным 0. Вот визуальное представление вида:
---------------------
| |
| ----------------- |
| | UITextView | |
| ----------------- |
| view1 |
---------------------
| |
| |
| |
| |
| view2 |
| |
| |
| |
| |
| |
---------------------
Результат, который я получаю, пока добавляю текст в textView:
---------------------
| |
| ----------------- |
| | UITextView | |
| | | |
| | | |
---------------------
| |
| |
| |
| |
| view2 |
| |
| |
| |
| |
| |
---------------------
Но желаемое поведение будет примерно таким:
---------------------
| |
| ----------------- |
| | UITextView | |
| | | |
| | | |
| | | |
| | | |
| | | |
| ----------------- |
| view1 |
---------------------
| |
| |
| view2 |
| |
| |
| |
---------------------
Странно то, что после того, как я добавил текст и нажал «Отправить» (не добавлено на диаграмму для простоты), представление 1 увеличивается до правильного размера, как и представление 2, но не во время набора текста.
Нужно ли мне явно вызывать setNeedsUpdateConstraints или updateConstraintsIfNeeded? Если да, то где? Я попытался вызвать его из делегата текстового представления textViewDidChange:, но ничего не помогло.
Любая помощь приветствуется.