Indique manualmente las restricciones en Xcode 4 interfacebuilder / storyboard

Esto parece ser una pregunta realmente básica, pero no puedo encontrar la respuesta.

Cuando agrego elementos a una escena en mi guión gráfico, o los arrastro o los networkingimensiono, Xcode agrega y elimina automáticamente restricciones para describir su tamaño y posicionamiento.

Ahora, una vez que Xcode ha creado una restricción de un tipo particular, por ejemplo, una restricción de altura, sé que puedo modificar sus attributes, Relation , Constant y Priority en el caso de la restricción de altura, a través del inspector de attributes. Lo que no puedo entender es cómo agregar o eliminar manualmente restricciones de un tipo dado en lugar de confiar en la magia de Xcode para hacerlo.

captura de pantalla que muestra las mismas cosas descritas en el párrafo anterior

Por ejemplo, en mi escenario actual, tengo un ViewController que contiene una barra de herramientas y una vista de tabla. Ahora, exactamente qué restricciones quiero usar para describir el posicionamiento vertical y el tamaño de esas dos vistas:

  • La parte superior de la barra de herramientas tiene espacio vertical 0 en la parte superior de la pantalla
  • La barra de herramientas tiene una altura fija
  • La parte inferior de la vista de la tabla tiene espacio vertical 0 en la parte inferior de la pantalla
  • La parte superior de la vista de la tabla tiene espacio vertical 0 en la parte inferior de la barra de herramientas

De esta forma, la altura de la vista de la tabla se ajustará adecuadamente al tamaño de la pantalla.

Sin embargo, Xcode, en su sabiduría, ha decidido que esto no es lo que quiero, y en su lugar me ha infligido las siguientes restricciones (que parece que no quiere cambiar, no importa cuánto arrastre cosas random y rezo ):

  • La parte superior de la barra de herramientas tiene espacio vertical 0 en la parte superior de la pantalla
  • La parte inferior de la barra de herramientas tiene Espacio vertical 526 desde la parte inferior de la pantalla
  • La vista de la tabla tiene espacio vertical 0 en la parte inferior de la pantalla
  • La vista de tabla tiene una altura fija de 526

Como resultado, todo sale mal cuando bash ver mi ViewController en una pantalla más pequeña o en un contenedor:

captura de pantalla de TODO LO QUE ES INCORRECTO

No poder establecer manualmente mis propias limitaciones cuando sé exactamente lo que necesito es frustrante. ¿Cómo puedo eliminar explícitamente las restricciones de mierda que Xcode ha creado automáticamente y, en su lugar, agregar manualmente las mías?

El problema al trabajar con restricciones en IB / storyboard es que Xcode nunca le permitirá tener restricciones ambiguas. Nunca. Incluyendo cuando estás en el process si los editas. Entonces, cada vez que desee editar varias restricciones, Xcode puede decidir agregar automáticamente algunas para evitar un estado no permitido.

Esto puede ser doloroso para trabajar. Lo que encontré tipo de trabajos es agregar restricciones falsas en los cuatro bordes mientras establezco otras restricciones. Esto, con suerte, mantiene al IB bajo control y evita que agregue cosas completamente estupidas.

Puede agregar restricciones desde el menu superior. Haga clic en el object y luego en el Editor del menu. Puede agregar restricciones con los submenus Alinear y Pin (que luego pueden editarse más adelante).

Nota: no todas las restricciones se pueden agregar en IB. La relación de aspecto, por ejemplo, solo se puede hacer en código.

PD. Xcode solo le permitirá eliminar restricciones que son networkingundantes, es decir, que no dejarán un estado ambiguo. Por lo tanto, para eliminar las restricciones "b * * ** t", primero debe agregar suficientes otras para crear un estado permitido.