Xcode 4 e Interface Builder: Edición de restricción de espaciado vertical (ancla superior, no inferior)

Tengo un widget que no se distribuye correctamente en el dispositivo (se ve bien en IB, pero no está bien). El widget es una label y está ubicado alnetworkingedor de la mitad de la pantalla. Interface Builder le dio una restricción de espacio vertical con un "anclaje inferior". Aquí, abajo significa la parte inferior de la pantalla (en lugar de un widget a continuación, o anclaje a la pantalla superior).

Estoy en el inspector, pero no veo cómo cambiar a un ancla superior (preferiblemente, al widget anterior). Traté de leer los documentos de Apple y las restricciones de edición en particular, pero fue una confusión y no explicó cómo hacer el cambio (o me perdí la discusión, que fue de 7 oraciones).

A continuación se muestra una captura de pantalla en Interface Builder que muestra la restricción de espacio vertical anclada a la parte inferior de la pantalla. Y sus attributes dejan mucho que desear: Igual, constante y prioritaria no ayudan realmente.

introduzca la descripción de la imagen aquí

¿Alguien sabe cómo editar las restricciones? Específicamente, quiero (1) cambiar el anclaje de un espaciador vertical de abajo hacia arriba; y (2) anclar contra el widget de arriba, y no en la parte superior de la pantalla.

Seleccione los elementos "Embedded" y "Calculated" juntos haciendo clic en Mayús.

Con esos dos elementos seleccionados, use el menu de restricciones:

introduzca la descripción de la imagen aquí

Este menu, junto con una cuidadosa selección de elementos, es fundamental para la feliz edición de restricciones en IB. En su caso, elija el elemento central, el menu Pin. Elija Espaciado Vertical: esto creará una nueva restricción en el espaciado vertical entre sus dos elementos. Alternativamente, select un solo elemento y pinche "Espacio superior para supervise" para fijar a la parte superior en lugar de a la parte inferior.

Ahora puede seleccionar y eliminar el espacio vertical en la parte inferior de la vista. IB no le permitiría eliminar esto antes, ya que debe tener un set completo de restricciones no ambiguas. Después de agregar su nueva restricción de espacio vertical, ahora tiene esto.

Para ilustrar más, aquí hay un controller de vista vacío, con un campo de text único que he arrastrado:

introduzca la descripción de la imagen aquí

Todas las restricciones son violetas, lo que significa que IB las ha agregado para mí (son restricciones del sistema) y no pueden eliminarse: son las restricciones mínimas necesarias para posicionar y dimensionar el campo de text.

Ahora, seleccionaré el campo de text y pincharé el espacio superior a la supervisión:

introduzca la descripción de la imagen aquí

Ahora puede ver que las dos restricciones de espacio vertical han cambiado a azul (ahora son restricciones de usuario) y tienen una apariencia más gruesa en el editor. Esto significa que uno de ellos puede eliminarse. Selecciono la restricción para el espacio inferior y presiono Eliminar:

introduzca la descripción de la imagen aquí

Tenga en count que esto todavía tiene el aspecto de una restricción de usuario, pero si trato de eliminarlo, IB volverá a crear automáticamente el locking de la restricción del sistema en la parte inferior de la supervisión, volviéndonos a la primera casilla.

He escrito sobre esto, y temas similares de autoajuste, aquí .

Tengo una palabra para Autolayouts. Si funciona, funciona, pero si no funciona, entonces usa la forma antigua (use el código)