Autolayout: добавить ограничение в супервизор,а не в руководство по макету?
У меня есть UIView в моем UIViewController в раскадровке, который я хочу добавить ограничение на пространство, которое просматривает расстояние от верхнего края.
теперь, когда я делаю обычное с помощью ctrl + drag к главному виду ViewController, я получаю только возможность установить его в верхнее руководство по компоновке.
Это проблема для меня, потому что в какой-то момент в приложении Я собираюсь переместить основной вид вверх вокруг 20-50px и что происходит тогда, что вид у меня не будет двигаться... потому что его не выровнены супервизор.
Как я могу вручную сделать это в раскадровке или мне нужно добавить его программно?
Im с помощью xcode 6.
7 ответов:
справа от значения константы ограничения находится стрелка. Если вы нажмете на него, появится меню, в котором вы можете выбрать, что именно вы хотите сделать своим ограничением относительно. Если вы выберете "вид", то он прикрепит его к верхней части представления.
вы должны быть в состоянии сделать это, выделив вид, который вы хотите в раскадровке, а затем выбрав
Editor > Pin > Top Space to Superview
в верхнем меню.
это устарело в XCode 7, см. Вместо этого ответ @PaulGurov.
можно также добавить, что если представление, которое вы пытаетесь закрепить, не является прямым подвидом представления, к которому вы хотите его прикрепить, предложенный подход на самом деле недействителен. Допустим, иерархия представлений выглядит так, и вы хотите закрепить представление изображения (
Parallax Image View
в этом случае) к виду контроллера вида (View
в данном случае).чтобы сделать это вы просто управления + перетащить С
Parallax Image View
кView
. Это представляет выбор по умолчанию, где вы можете увидетьVertical Spacing to Top Layout Guide
пин-кодParallax Image View
к верхнему руководству по компоновке.то, что вы хотите, чтобы закрепить его в верхней части (поля) вида. Для этого вам нужно переключиться на другой набор ограничений, нажав Alt
Если высота вида случайно установлена в 0, вертикальное пространство для верхнего направляющего выступа макета не появится. Однако появится вертикальное пространство для Нижнего руководства по компоновке, которое должно было иметь смысл для кого-то внутри Apple около 2004 года.
ни один из приведенных выше ответов не работал для меня, вместо этого я должен сделать хак, чтобы установить верхнюю часть моего подвида с верхней частью superview вместо верхнего руководства по макету.
- во-первых, установите центр подвида вертикально с superview.
- затем измените Центр Y ограничения для подвида, а также супервизора к Top ограничения.
теперь вы можете идти.