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 имел любое пространство слева от справа, независимо от того, насколько большой экран. Как я могу это исправить? Спасибо!

Ответы

Ответ 1

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

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

Проверьте дополнительную ссылку для получения дополнительной информации о полях. Редактирование ограничений автоматической компоновки

enter image description here

Ответ 2

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