2014-10-19 5 views
16

У меня есть некоторые проблемы с автоматической компоновкой, надеюсь, некоторые из вас могут мне помочь =).iOS autolayout изменяет ведущее и конечное пространство

добавить UIView в пустой контроллер представления, как это: enter image description here

Затем добавить ограничения для переднего и заднего пространства, как это:

enter image description here

Какие результаты в этом:

enter image description here

Я не могу понять, почему он устанавливает их равными -16.0. Если я изменю эти значения на 0, то Xcode жалуется на ширину серого UIView.

Когда я запустить приложение на iPhone 5 тренажере, он выглядит отлично: enter image description here

Однако, когда я запускаю приложение на iPhone 6 Plus симулятор он добавляет пустое пространство слева и справа:

enter image description here

Я не хочу, чтобы серый UIView имел любое пространство слева от справа, независимо от того, насколько большой экран. Как я могу это исправить? Благодаря!

+0

Просто нажмите кнопку редактирования, что на правой стороне ограничений, а также изменить значение от -16 до 0. -16 должен делать с установлением ограничений на полях, а не края представления. – rdelmar

+1

Если я изменил их на 0, то Xcode автоматически изменит размер вида следующим образом: http://i.imgur.com/HjQi2dV.png – almas

+0

И если я установил их в 0, а затем вручную установил рамку от края до края, то я получаю предупреждение о неправильном представлении, и во время выполнения оно меняет размер в любом случае, вот скриншот: http://i.imgur.com/954Jz1O.png – almas

ответ

37

Дважды щелкните ограничение и откройте его. Выберите первый или второй элемент и снимите флажок «Относительно поля». Затем установите свою константу как 0.

Xcode показывает -16, потому что он вычисляет пространство относительно поля, а не края.

Для получения дополнительной информации о марже, обратитесь к следующей ссылке. Editing Auto Layout Constraints

enter image description here

+0

Это сработало, спасибо за четкое объяснение и ссылку. – almas

+0

Большое вам спасибо! –

0

Вы можете очистить все существующие ограничения в представлении, а в любом режиме Any Any - добавить ограничения для всего 4-х пространств для просмотра, которые являются ведущими, трейлинг-и верхними, нижними. Тогда он будет иметь равную ширину с экраном, независимо от того, насколько большой экран.

+0

Он по-прежнему изменяет их размеры. Я просто добавляю такие ограничения: http://i.imgur.com/wUiFX31.png, что приводит к следующему: http://i.imgur.com/4hqUuKD.png – almas

+0

Обратите внимание на -16, происхождение серого цвета x должно должно быть 0, а его ширина должна быть 600. – gabbler

+0

да, я тоже пробовал, но он все еще меняет размер. Скриншот: http://i.imgur.com/IlnyGhi.png – almas

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