it-swarm.com.ru

Автоматическая компоновка раскадровки: "конечный пробел к контейнеру" против "нижнего пробела до нижнего макета"

Может ли кто-нибудь помочь мне понять разницу между «конечным пространством к контейнеру» и «нижним пространством к нижнему макету» в автоматическом макете компоновщика интерфейса? 

Interface Builder Auto Layout Constraints

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

Любые разъяснения будут с благодарностью. 

16
bbrame

Ведущий/тянущийся - горизонтальный интервал. (Он не помечен как «левый» и «правый», потому что он меняет язык справа налево.) Верх/низ - именно то, что написано.

«Контейнер» и «Руководство по макету» определены по-разному, но на практике работают аналогично. Ограничения «В контейнер» управляют пространством между элементом пользовательского интерфейса и краем его суперпредставления (или другого содержащего элемент пользовательского интерфейса). Ограничения «To Layout Guide» являются особым случаем для вертикального интервала - поскольку представления расширяются под прозрачными панелями навигации/состояния/вкладок в iOS 7, вы, как правило, хотите контролировать, где элемент пользовательского интерфейса отображается относительно элементов вместо краев Посмотреть.

Так... 

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

«Руководство по планировке от нижнего пространства к нижнему» - это то, что вам нужно для этого. Это установит интервал относительно нижней части суперпредставления, если нет панели вкладок, и относительно панели вкладок, если таковая существует.

22
rickster

Не забудьте снять отметку «Относительно маржи» enter image description here

6
Artem Zaytsev

Трейлинг-пространство

Пробел от правого края текущего вида до следующего/соседнего вида или суперпредставления

Ведущее пространство

Пространство от соседнего вида или суперпредставления до левого края текущего вида

Точно так же верх и низ соответствуют верхнему и нижнему пространству. 

6
Irfanlone

Чтобы добавить к уже принятому ответу, также стоит отметить, что если вы заменяете представление в контроллере представления другим, я обнаружил, что любые ограничения для направляющих макета фактически не используются. Я не изучал точные детали этого, но я предполагаю, что это потому, что руководства по макету доступны только во время загрузки View Controller из раскадровки.

По этой причине я рекомендую использовать макет для контейнера, но только в том случае, если вы хотите поменять местами представления контроллера представления. 

Я столкнулся с этим, когда хотел использовать раскадровку для создания пустых состояний для моих приложений.

Пример:

-(void)viewDidLoad{UIView* replacementView = //view loaded from storyboardself.view = replacementView //Layout guide margins will not be followed in replacement view}

0
Matt M