Я не могу найти способ создать ограничение «квадрат», означающее «ширина равна высоте» в Интерфейсном Разработчике. Думаю, можно программно добавить такое ограничение. Что я могу сделать в IB? Может я просто этого не вижу? Это кажется банальным, но я не могу его найти.
ios
interface-builder
autolayout
nslayoutconstraint
Демоническая смерть
источник
источник
Ответы:
Обновить Xcode 5.1b5
Ctrl + щелчок и перетаскивание из вида и отпускание, пока указатель находится над видом. Выберите «Соотношение сторон». Это создаст ограничение, в котором первым и вторым элементом будет представление.
До Xcode 5.1
Вы не можете, потому что в редакторе ширины / высоты отсутствуют поля, относящиеся к другому свойству или устанавливающие соотношение:
Следовательно, вы не можете выразить следующий код в Интерфейсном Разработчике:
CGFloat ratio = 1.0; NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:myView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:myView attribute:NSLayoutAttributeHeight multiplier:ratio constant:0]; constraint.priority = 1000; [myView.superview addConstraint:constraint];
источник
Добавьте новое ограничение, соотношение сторон 1: 1 для элемента пользовательского интерфейса, как на изображении.
источник
Для начала перетащите элемент управления по диагонали от кнопки к себе. Появится контекстное меню, в котором вы можете добавить ограничения по ширине и высоте. Shift + щелчок по каждому; появится галочка, указывающая, что вы добавили ограничение. (Если вы случайно закроете диалоговое окно перед добавлением обоих, ничего страшного, просто повторите шаг перетаскивания и установите другой):
При первом добавлении эти ограничения принимают текущую ширину и высоту кнопки, поэтому вам нужно будет настроить каждое ограничение, чтобы придать ему более подходящее значение. Нам придется делать это по одному, хотя наше изображение квадратное, поэтому обязательно используйте одно и то же постоянное значение в обоих ограничениях для пропорционального изменения размера кнопки. Дважды щелкните ограничение и введите меньшее значение в его постоянное поле:
источник