Xcode 6 устанавливает значения по умолчанию для полей макета или отключает их

Эта новая функция Xcode 6 вызывает раздражение. В большинстве случаев мне не нужно устанавливать смещение относительно полей, и если я это сделаю, я могу использовать значения, отличные от значения по умолчанию 16. Есть ли способ изменить значение по умолчанию или полностью отключить поля для моего проекта (или для всех проектов в моем Xcode)?

Ответ 1

Вы не можете "отключить их", потому что они встроены в UIView. Вы можете установить их равными нулю:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
label.layoutMargins = UIEdgeInsetsMake(0, 0, 0,0);

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

Ответ 2

Просто удерживайте клавишу Option (⌥) во всплывающем окне ограничений, чтобы переключиться между привязкой к краю VS границей представлений. Простой!

См. полный ответ здесь: http://blog.manbolo.com/2014/10/09/xcode-6-auto-layout-margin-annoyances