2015-04-01 4 views
0

Я изначально хотел, чтобы мои файлы раскадровки масштабировались до размера экрана симулятора/устройства. Мне не удалось выяснить, как это сделать в Xcode 6. Моей альтернативной идеей было то, что я устанавливал ограничения на кнопки в моем проекте с помощью конструктора интерфейсов. Я установил некоторые ограничения на кнопки - например, я попытался установить ограничение по центру на одну кнопку, щелкнув по фону представления и затем подключившись к кнопке (а затем выбрав «центр горизонтально в контейнере»). Но когда я запускаю свою программу, кнопка не перестраивается. То же самое относится к ограничениям I места задних ребер. XCode просто игнорирует все из них. Если я запускаю симулятор iPhone 6, кнопки не увеличивают пространство для заполнения симулятора (они «масштабируются» в смысле размера, но сами не перемещаются). Что я делаю не так?Xcode 6 не соблюдает ограничения автоопределения

ответ

0

Убедитесь, что все линии ограничений синие (не оранжевые, и у вас нет предупреждений о том, что ваша кнопка будет отображаться по-разному в течение времени выполнения. Если у вас есть какие-либо из этих проблем, хорошим стартовым шагом является удаление плохого (апельсины) сдерживает и использует «добавить недостающие ограничения» повторно запускает проект и проверяет компоновку.

Другой способ - удалить все ограничения и использовать «Добавить предлагаемые ограничения» для одной из ваших кнопок и создать остальную часть Ограничения на основе этой кнопки.

+0

Благодарим за отзыв. Я сделал ссылку на образ проблемы. Я не уверен, что это то, что вы подразумеваете под «плохими» ограничениями. Спасибо. https://docs.google.com/document/d/1l6A3xWa28m1iKFDXHWpdsCn8U5z7ljRKhFOYyDERaEc/edit –

+0

Это именно то, что я имел в виду. Удалите это оранжевое сжатие и создайте новый ограничитель только в верхней части представления и на свою кнопку слева. это должно хорошо работать. Дайте мне знать, как это происходит. – Jprens

+0

Хорошо, поэтому какой вариант я должен щелкнуть, чтобы добавить это ограничение («top space to top layout guide»)? (Просто добавлено изображение в начало документа google) –

0

Это не проблема Xcode 6. Вы не можете ознакомиться с автозапуском. Если вы хотите поместить кнопку в центр целого vie w затем нажмите на контакт и щелкните по центру по вертикали и по центру по горизонтали. enter image description here Затем нажмите на проблемы и щелкните по высоте и ширине. Теперь ваша кнопка будет находиться в центре всего вида и будет иметь фиксированную ширину и высоту. Если у вас возникли проблемы с автозапуском, вы можете прокомментировать изображения.

+0

Благодарим вас за быстрый ответ. Вот пример изображения неудачной попытки (это в следующем комментарии). Перетаскивание изображения в раздел комментариев не работало. –

+0

https://docs.google.com/document/d/1l6A3xWa28m1iKFDXHWpdsCn8U5z7ljRKhFOYyDERaEc/edit?usp=sharing –

+0

Разве ваша проблема решена сейчас –

0

Что вы делаете неправильно, так это то, что вы не устанавливаете правильные ограничения. Как другие отметили:

  • Убедитесь, что вы установили минимальное количество ограничений, необходимых.

  • если ваш размер элемента является внутренняя - как UILabelUIImageView или UIButton - вам нужно только 2 других ограничений (для X и Y позиции, а ширина и высота уже дает метод компонент intrinsicContentSize).

  • Если вы заставляете размер самостоятельно, вам нужно как минимум 4 ограничения. (например: верх + нижний + левый + правый или центр X + центр Y + ширина + высота)

  • Если вы установили ограничения в раскадровке, вы должны увидеть предупреждения и ошибки (предупреждения, когда ограничения не относятся к раскладке, и ошибки, когда набор ограничений не может быть разрешен: у вас недостаточно или слишком много ограничений). Предупреждения Trust Storyboards, есть здесь, чтобы помочь.

  • Если вы создаете «центральное вертикальное» или «центрально-горизонтальное» ограничение, убедитесь, что константа равна нулю. (на вашем скриншоте, он был равен 12)

Вы должны указать все ограничения, которые вы установили, и убедиться, что они имеют смысл вместе. Как только вам станет удобно, вы увидите, что XCode не просто «игнорирует» ваши ограничения.

+0

Благодарим вас за быстрый ответ. Предупреждения говорят мне, что рамка для кнопки выбора будет отличаться во время выполнения. Кроме того, изменение константы, равное 12 (делает ее нулевой), делает помеху оранжевым, что делает ее недействительной. –

+0

Нет, «оранжевый» не означает, что ограничение «недействительно», это означает, что макет раскадровки не синхронизируется с ограничениями. Это означает, что вы не можете доверять просмотру XCode, пока все эти предупреждения не будут решены. у вас есть несколько способов «исправить» это, «обновлять фреймы» обычно является тем, который я использую, когда я определил набор ограничений, которые я уверен с – Vinzzz

+0

. Когда у вас больше нет предупреждений, вы можете напрямую обновлять константы ограничений и макет раскадровки будет обновлен «в прямом эфире» – Vinzzz

Смежные вопросы