XCode 6 beta 7: раскадровка добавляет дополнительное пространство на правой и левой сторонах

Когда я добавляю subview в корневое представление ViewController и с установкой автоматического макета leadingSpace, trailingSpace, topSpace и bottomSpace равным нулю, появляются дополнительные пробелы на левой и правой сторонах (поэтому, если я печатаю рамку подкадров, то это будет 16 и размер меньше на 32, чем должен быть). Так что фактически мы получаем, что начальное и конечное пространства не являются нулями...

enter image description here

Как вы можете видеть на картинке ведущее пространство - ноль, но origin.x = 16

Раньше я не работал с авто макетом, поэтому мой вопрос: Это ошибка нового xCode или функции?

P.S. Обновлены все кадры и ограничения.

Ответ 1

iOS 8 добавляет концепцию "полей контента" к UIView. В видеоролике "Что нового в Cocoa Touch" от WWDC 2014 обсуждаются поля содержимого (под заголовком "Адаптивные поля" ), начиная примерно с 12 миллионов 30 секунд.

По умолчанию по умолчанию по 8 пунктов. Каждый конец ограничения компоновки может относиться к полю представления, а не к истинному краю представления (используйте File > Open Quickly, чтобы перейти к определению NSLayoutAttribute, чтобы увидеть возможности).

Ваше ограничение - "относительно поля". Когда вы создаете ограничение с помощью "Добавить новые ограничения", вы можете выбрать, относит ли он относительный или нет:

constraint-popover

Он всегда имеет значение margin-relative; вы должны отключить флажок каждый раз, когда вы добавляете ограничения, если вы не хотите, чтобы они были относительными по отношению к марке.

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

constraint-attributes