Обычно скрытие вида (путем установки isHidden
) не влияет на макет.Скрытые виды участвуют в макете.Любые ограничения, связанные с представлением, все еще применяются.Область, занимаемая скрытым видом, по-прежнему зарезервирована для него.
Это полезно, поскольку позволяет использовать скрытые виды в качестве «проставок» для создания макетов (в Интерфейсном Разработчике), которые невозможно создать иначе.(В коде вы можете использовать UILayoutGuide
s вместо скрытых представлений, но IB не поддерживает создание направляющих.)
UIStackView
отличается от других представлений.UIStackView
наблюдает свойство isHidden
каждого из его упорядоченных подпредставлений.Когда isHidden
упорядоченного подпредставления изменяется, UIStackView
обновляет ограничения, чтобы создать или удалить область, используемую этим подпредставлением.
Ни одно другое представление не делает то, что делает UIStackView
, поэтому никакое другое представление не регулирует макетего подпредставления, когда они становятся скрытыми или видимыми.