Ошибка ограничения для UIScrollView с пустым UIStackView в Interface Builder

Я следую части "Динамическое представление стека" этого Руководство Apple по просмотру стека, и я столкнусь с проблемой ограничения в Interface Builder, если оставлю UIStackView (внутри UIScrollView) пустым, а не помещу UIButton внутри него. Я хочу, чтобы мой UIViewController динамически создавал все arrangedSubviews, поэтому я не хочу оставлять там ни одного UIView, который мне просто нужно будет обработать или удалить программно.

Я могу игнорировать ошибку, и она по-прежнему будет работать так, как я хочу, без ошибок ограничения времени выполнения. Однако я не хочу оставлять проблемы с ограничениями в моем xib / nib.

Какой самый чистый способ удовлетворить Интерфейсный Разработчик? Если я добавлю конкретное ограничение высоты, мне придется создать для него выход и программно удалить. Это кажется слишком агрессивным, и я бы предпочел оставить как можно больше Auto Layout в xib / nib.

Обзор Interface Builder

Ошибка ограничения


person solidcell    schedule 19.09.2016    source источник


Ответы (1)


Оказывается, что для удовлетворения требований Interface Builder UIScrollView должен иметь высоту для своего содержимого, и он не будет принимать высоту 0. Итак, поскольку UIStackView - это представление содержимого, у него должна быть высота. Несмотря на то, что во время выполнения он будет иметь контент и, следовательно, высоту, Interface Builder должен иметь запасной вариант. Поэтому установите Внутренний размер.

Он находится внизу Инспектора размера:

введите описание изображения здесь

Измените Внутренний размер с По умолчанию (определено системой) на Заполнитель и установите для Высота все, что хотите. Что-то достаточно большое, чтобы помочь при проектировании в Интерфейсном Разработчике, вероятно, хорошая идея. Для параметра Ширина можно оставить любое значение или установить флажок Нет.

person solidcell    schedule 20.09.2016
comment
Спасибо, что разместили здесь свое решение! - person vrutberg; 19.04.2017