Добавьте ограничение расстояния к суперпредставлению в Xcode 5

Я создаю приложение для iOS в Xcode 5, и у меня возникают проблемы с добавлением ограничений макета. В Xcode 4.x я мог просто добавить начальные / конечные / верхние / нижние пробелы в контейнер (суперпредставление) для любого элемента пользовательского интерфейса. Теперь у меня есть только эта опция:

Я хочу добавить ограничение "нижнего пространства для суперпредставления" в мое текстовое представление. В нем говорится "интервал до ближайшего соседа", но я не хочу создавать ограничение для "ближайшего соседа", у меня есть что-то еще под моим текстовым представлением, и я не хочу создавать ограничение с этим. Если в моем текстовом представлении нет другого объекта, это правильно добавляет ограничение к контейнеру. Но если я пытаюсь что-то изменить, все портится: мне нужно переместить все виды в другое место, затем добавить ограничение, затем добавить, переместить другие виды назад. Если я добавлю ограничение между текстовым представлением и элементом пользовательского интерфейса (в данном случае кнопкой), это не сработает (все выглядит правильно: кнопка имеет ограничение для нижней части суперпредставления, а текстовое представление имеет ограничение по вертикали с помощью кнопка, и нет никаких конфликтующих ограничений). Элементы пользовательского интерфейса отображаются за пределами экрана в разных (3,5 дюйма) ориентациях экрана. Есть ли ошибка в Интерфейсном Разработчике, или я что-то упустил? Когда я мог все настроить правильно, мои элементы управления все еще кажутся вне границ, когда я изменяю размеры экранов конструктора интерфейса, но отображаются правильно на симуляторе / устройстве на 3,5 дюйма. Какова "лучшая практика" проектирования пользовательского интерфейса с новыми ограничениями Interface Builder в Xcode 5?

ОБНОВЛЕНИЕ: у меня есть больше проблем в другом проекте с той же самой вещью. Я пытаюсь зафиксировать верхнюю часть представления к верхнему руководству по макету точно, перетаскивая CTRL моего элемента управления туда, где написано "Верхнее руководство по макету", и пытается связать нижнюю часть моего элемента управления с руководством по макету (примерно на -470 точки) вместо выравнивания верхней части моего элемента управления, что не имеет никакого смысла, так как элемент управления должен размещаться на экранах с переменной высотой (например, на обычном и 4-дюймовом iPhone и других возможных макетах в будущем...). Вот скриншот того, что происходит:

И я получаю это в ограничениях:

Как я могу заставить Интерфейсный Разработчик выровнять верхнюю часть представления к верхнему руководству по макету?

ОБНОВЛЕНИЕ 2: я нашел обходной путь. Сначала я изменяю размер представления, чтобы уменьшить его высоту (чтобы верхняя часть не перекрывалась или не была очень близка к верхней направляющей макета), и ТО, ЧТО Я CTRL+ перетащил в верхнюю направляющую макета. Кажется, работает правильно. После подключения я снова изменяю размер изображения до нужного размера и выбираю Update Constraints, Это работает, но это все еще не решение, так как требует изменения размера представления, подключения, изменения размера и обновления ограничений.

4 ответа

Решение

Чтобы добавить ограничение между представлением и его "суперпредставлением" (например, "нижнее пространство для суперпредставления"), вы можете использовать схему документа (левая часть Interface Builder).

В структуре документа:

  1. Удерживая нажатой клавишу Ctrl, перетащите курсор от вида к его суперпредставлению (или наоборот).
  2. Выберите ограничения, которые вы хотите добавить (в этом примере "От нижнего пространства до контейнера").

Ctrl-перетаскивание из вида в его суперпредставление (или наоборотВыберите ограничения, которые вы хотите добавить

Ответ от Jarig хорош, но иногда может привести к неожиданным результатам, как отмечено в комментариях.

Другой вариант - выбрать дочерний вид и перейти к:

Редактор> Pin > Top Space для Superview

или какое-либо ограничение вы хотите.

Кажется, теперь ограничение нижнего края. Выберите ваш вид и его суперпредставление, нажмите "Выровнять" и отметьте "Нижние края"

фильм

Если вы хотите добавить конечные или ведущие ограничения, как в Xcode 4, пожалуйста, перетащите CTRL из центра представления, в которое вы хотите добавить ограничение, влево, вправо, вверх или вниз. Затем вам будет представлено окно, в котором вы можете выбрать ограничение для добавления (в зависимости от направления перетаскивания CTRL).

Другие вопросы по тегам