Добавить ограничение интервала в супервизор в Xcode 5


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

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

обновление: у меня возникли некоторые проблемы в другом проекте с тем же самым. Я пытаюсь исправить это вид сверху верхней макета руководство именно по Ctrl-перетаскивание мое управление, где он говорит "топ макет направляющей", и он пытается Алинг нижней части моего контроля макета руководство (около -470 баллов) вместо alinging верхней части моего контроля, которая не имеет никакого смысла, так как контроль должен самого макета в переменной высота экранов (например, обычный и 4-дюймовый iPhone, а также возможные другие макеты в будущем..). Вот скриншот того, что происходит:

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

Как я могу заставить Interface Builder выровнять top из представления в верхнем руководстве по компоновке?

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

4 74

4 ответа:

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

в контуре документа:

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

ctrl-drag from the view to its' superview (or vice versa)Select the constraints you want to add

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

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

редактор > Pin > верхний пробел для просмотра

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

теперь, похоже, ограничение нижнего края. Выберите свой вид и его супервизор, нажмите " выровнять "и проверьте" нижние края " thingy

pic

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