Добавить ограничение расстояния для просмотра в Xcode 5
Я создаю приложение iOS в Xcode 5, и у меня возникают проблемы с добавлением ограничений компоновки. В Xcode 4.x я мог просто добавить верхние/конечные/верхние/нижние пробелы в контейнер (супервизор) к любому элементу пользовательского интерфейса. Теперь у меня есть только эта опция:
![enter image description here]()
Я хочу добавить ограничение "нижнее пространство для наблюдения" в текстовое представление. Он говорит "расстояние до ближайшего соседа", но я не хочу создавать ограничение для "ближайшего соседа", у меня есть что-то еще под моим текстовым представлением, и я не хочу создавать ограничение с этим. Если в моем текстовом представлении нет другого объекта, он правильно добавляет ограничение в контейнер. Но если я пытаюсь что-то изменить, все испортится: мне нужно переместить все виды где-то в другом месте, затем добавить ограничение, а затем добавить переместить остальные виды назад. Если я добавлю ограничение между текстовым представлением и элементом пользовательского интерфейса (в данном случае это кнопка), он не работает (все выглядит правильно: кнопка имеет ограничение на просмотр вниз, а текстовое представление имеет ограничение вертикального интервала с помощью и нет противоречивых ограничений). Элементы пользовательского интерфейса отображаются вне границ экрана в разных ориентациях экрана (3,5 дюйма). Есть ли ошибка с интерфейсом Builder, или я чего-то не хватает? Когда я смогу настроить все правильно, мои элементы управления все еще кажутся вне пределов времени, когда я изменяю размеры экранов компоновщика интерфейса, но правильно отображаю их на симуляторе/устройстве на 3,5 дюйма. Какова "наилучшая практика" проектирования пользовательского интерфейса с новыми ограничениями Interface Builder в Xcode 5?
ОБНОВЛЕНИЕ: У меня возникает еще одна проблема в другом проекте с тем же. Я пытаюсь установить вершину представления в верхнюю направляющую макета, точно CTRL-перетаскивая мой элемент управления туда, где он говорит "руководство по началу макета", и пытается сгладить нижнюю часть моего элемента управления направляющей макета (примерно на -470 очков) вместо того, чтобы вызывать верхнюю часть моего контроля, что не имеет никакого смысла, поскольку элемент управления должен располагаться в экранах с переменной высотой (например, обычный и 4-дюймовый iPhone и возможные другие макеты в будущем). Вот скриншот того, что происходит:
![enter image description here]()
И я получаю это в ограничениях:
![enter image description here]()
Как я могу заставить Interface Builder совместить верхнюю часть представления с верхним руководством по макете?
ОБНОВЛЕНИЕ 2: Я нашел обходное решение. Я сначала изменяю размер представления, чтобы уменьшить его высоту (поэтому верхняя часть не будет перекрываться или быть очень близка к верхней направляющей макета), а THEN я CTRL + перетащить ее в верхнюю направляющую. Кажется, он работает правильно. После того, как я подключу его, я снова измените свой вид на желаемый размер и выберите Update Constraints
. Он работает, но он по-прежнему не является решением, поскольку он требует изменения размера представления, подключения, изменения размера и обновления ограничений.
Ответы
Ответ 1
Чтобы добавить ограничение между представлением и его супервидом (например, "нижнее пространство для наблюдения" ), вы можете использовать схему документа (левая часть построителя интерфейса).
В схеме документа:
- Удерживайте клавишу ctrl и перетащите ее из вида в супервизор (или наоборот).
- Выберите ограничения, которые вы хотите добавить (в этом примере "Bottom Space to Container" ).
![ctrl-drag from the view to its' superview (or vice versa)]()
![Select the constraints you want to add]()
Ответ 2
Ответ Jarig хорош, но иногда может привести к неожиданным результатам, как указано в комментариях.
Другой вариант - выбрать дочерний режим и перейти к:
Редактоp > Вывод > Верхнее пространство для наблюдения
или любое ограничение, которое вы хотите.
Ответ 3
Кажется, теперь это ограничение нижнего края.
Выберите свой вид и его супервизор, нажмите "Выровнять" и проверьте "Нижние края" thingy
![pic]()
Ответ 4
Если вы хотите добавить конечные или ведущие ограничения, как в Xcode 4, пожалуйста, CTRL перетащите из центра представления, к которому вы хотите добавить ограничение, влево, вправо, вверх или вниз. Затем вам будет предоставлено окно, в котором вы можете выбрать ограничение для добавления (в зависимости от направления, в которое вы перетаскиваете CTRL).