ios xcode interface-builder autolayout xcode5

ios - Añadir restricción de espacio a la supervista en Xcode 5



interface-builder autolayout (4)

Estoy construyendo una aplicación de iOS en Xcode 5, y tengo problemas para agregar restricciones de diseño. En Xcode 4.x, podría simplemente agregar espacios principales / finales / superiores / inferiores al contenedor (superview) a cualquier elemento de UI. Ahora, solo tengo esta opción:

Quiero agregar una restricción de "espacio inferior a superview" a mi vista de texto. Dice "espaciar al vecino más cercano", pero no quiero crear una restricción para el "vecino más cercano", tengo algo más debajo de mi vista de texto, y no quiero crear una restricción con eso. Si no hay otro objeto en mi vista de texto, agrega una restricción al contenedor correctamente. Pero si intento cambiar algo, todo se arruina: necesito mover todas las vistas a otro lugar, luego agregar la restricción y luego agregar mover las otras vistas. Si agrego una restricción entre la vista de texto y el elemento de UI (un botón, en este caso), no funciona (todo parece correcto: el botón tiene una restricción para la parte inferior de la supervista, y la vista de texto tiene una restricción de espaciado vertical con botón, y no hay restricciones conflictivas). Los elementos de la IU aparecen fuera de los límites de la pantalla en diferentes orientaciones de pantalla (3,5 pulgadas). ¿Hay algún error con Interface Builder o me falta algo? Cuando pude configurar todo correctamente, mis controles todavía parecen fuera de límites cuando cambio el tamaño de las pantallas del constructor de interfaz, pero se muestran correctamente en el simulador / dispositivo a 3,5 pulgadas. ¿Cuál es la "mejor práctica" de diseñar la interfaz de usuario con las nuevas limitaciones de Interface Builder en Xcode 5?

ACTUALIZACIÓN: Estoy teniendo más problemas en otro proyecto con la misma cosa. Estoy tratando de arreglar la parte superior de una vista en la guía de diseño superior exactamente haciendo CTRL, arrastrando mi control hasta donde dice "guía de diseño superior", y estoy intentando colocar la parte inferior de mi control en la guía de diseño (alrededor de -470 puntos) en lugar de alinging la parte superior de mi control, que no tiene ningún sentido ya que el control debe maquetarse en pantallas de altura variable (por ejemplo, iPhone regular y de 4 pulgadas, y los posibles otros diseños en el futuro ...). Aquí hay una captura de pantalla de lo que está sucediendo:

Y estoy obteniendo esto en restricciones:

¿Cómo puedo hacer que Interface Builder alinee la parte superior de la vista con la guía de diseño superior?

ACTUALIZACIÓN 2: He encontrado una solución alternativa. Primero cambio el tamaño de la vista para disminuir su altura (para que la parte superior no se superponga o esté muy cerca de la guía de diseño superior) y LUEGO CTRL + lo arrastre a la guía de diseño superior. Parece que funciona correctamente Después de conectarlo, cambio el tamaño de mi vista nuevamente al tamaño deseado y selecciono Update Constraints . Funciona, pero aún no es una solución, ya que requiere cambiar el tamaño de la vista, conectarse, redimensionar nuevamente y actualizar las restricciones.


La respuesta por Jarig es buena, pero a veces puede conducir a resultados inesperados, como se señala en los comentarios.

Otra opción es seleccionar la vista secundaria e ir a:

Editor> Pin> Top Space para Superview

o cualquier restricción que desee.


Para agregar una restricción entre una vista y su "supervista" (como "espacio inferior a superview") puede usar el contorno del documento (la parte izquierda del constructor de interfaz).

En el contorno del documento:

  1. Mantenga presionada la tecla Ctrl y arrastre desde la vista a su ''supervista (o viceversa).
  2. Seleccione las restricciones que desea agregar (en este ejemplo "Espacio inferior al contenedor").

Parece ser una restricción de borde inferior ahora. Seleccione su vista y su supervista, toque "Alinear" y revise la cosilla "Bordes inferiores"


Si desea agregar restricciones finales o iniciales como en Xcode 4, presione CTRL-arrastre desde el centro de la vista a la que desea agregar la restricción hacia la izquierda, derecha, arriba o abajo. A continuación, se le presentará una ventana en la que puede seleccionar la restricción para agregar (dependiendo de la dirección en la que arrastró el CTRL).