2012-06-30 4 views
5

Иногда ограничения autolayout привязки к неправильной точке привязки - например, когда я хочу контроль привязываться к контролю над ней и autolayout ограничение становится на якорь в нижней части окна. Есть ли способ переместить ограничение? Искусство ASCII должно сделать это более ясным. Это то, что у меня есть:Могу ли я переместить ограничения автоопределения в Interface Builder?

+------------------------+ 
|      | 
| [x] Some checkbox  | 
|      | 
| [x] Another checkbox | 
|  |     | 
|  | ← autolayout  | 
|  | constraint  | 
|  |     | 
+-----+------------------+ 

И это то, что я хочу вместо этого:

+------------------------+ 
|      | 
| [x] Some checkbox  | 
|  | ← A.C.   | 
| [x] Another checkbox | 
|      | 
|      | 
|      | 
|      | 
+------------------------+ 

Я могу закрепить ограничение на верхний флажок, перемещая нижний флажок вверх, но это не то, что я хочу , Я хочу, чтобы вертикальное пространство было больше. (Флажки указаны только для иллюстрации, у моего реального варианта использования есть разные взгляды.)

ответ

7
  1. Выберите 2 флажков
  2. Нажмите на значок "H" в правой нижней части интерфейса строитель
  3. Выбрать межстрочный интервал

enter image description here


сейчас выберите бесполезные ограничения и удалите его:

enter image description here

+0

+1 Вы только что спасли меня от безумия. Я боролся с макетом из книги Learn Cocoa на Mac за последние пару часов, и я просто продолжал делать это хуже. Это именно то, что мне нужно для решения моих проблем. – MetalMikester

1

Постарайтесь переместить нижний флажок, чтобы он был расположен между собой и флажком выше. Затем нажмите на стойку и щелкните поле атрибутов на правой панели. Там вы должны иметь возможность снять флажок «стандартное» и установить его на требуемый интервал.

1

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

Выберите 2 флажка, затем используйте меню «Редактор»> «Штырь»> «Вертикальное расстояние», чтобы добавить требуемое ограничение (или используйте среднюю из трех кнопок в нижней правой части макета IB-макета для получить то же меню). В этот момент нежелательное автоматическое ограничение должно стать избыточным и переключиться с пурпурного на синий. Затем вы можете выбрать его и удалить. Каждый вид ограничений может быть создан с использованием элементов в этих меню Pin и Align.

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

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