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


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:

enter image description here

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?

ACTUALIZAR: 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:

enter image description here

Y estoy obteniendo esto en restricciones:

enter image description here

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

ACTUALIZACIÓN 2: Encontré una solución. 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.


74
2017-09-23 12:21


origen


Respuestas:


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").

ctrl-drag from the view to its' superview (or vice versa) Select the constraints you want to add


94
2017-09-23 19:01



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.


48
2017-12-03 17:27



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

pic


1
2017-09-23 18:15



Si desea agregar al final, o limitaciones principales como en Xcode 4 por favor, pulse Ctrl y arrastre desde el centro de la vista a la que desea agregar la restricción a 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).


0
2017-09-23 19:19