Я бы посоветовал настроить ваш экран с вашим «положением другого вида» и фиксированным ограничением высоты для этого вида. Сделайте так, чтобы представленные ниже виды имели фиксированное пространство внизу «другого вида здесь.»
Затем перетащите контроль из ограничения высоты «поставить другой вид» в свой контроллер вида. Это сделает ограничение выходом.
Теперь отредактируйте ограничение высоты и установите его константу равным 0. Это сворачивает это представление до высоты 0, заставляя его исчезать, а другие виды сдвигаться вверх.
Затем в коде, когда вы хотите, чтобы отображалось «другое представление здесь», используйте выход, чтобы установить константу в этом представлении обратно к ее предыдущему ненулевому значению, а затем вызовите layoutIfNeeded()
для родителя. view для обновления макетов вида на основе измененных ограничений.
Вы также можете написать код, который бы вставлял ваше представление «другое представление здесь» в иерархию представлений, но это включало бы удаление ограничений и добавление ограничений в коде, что немного проблематично.
Регулируя ограничение высоты на виде, вы можете показывать / скрывать его назад и вперед без особых усилий.