Diseño automático: ¿agregar restricción a la supervista y no a la guía de diseño superior?


112

Tengo una UIView en mi UIViewController en el guión gráfico al que quiero agregar una restricción al espacio que ve una distancia desde el borde superior.

Ahora, cuando hago lo habitual con ctrl + arrastrar a la vista principal de ViewController, solo tengo la opción de configurarlo en la guía de diseño superior.

Esto es un problema para mí porque en un punto de la aplicación voy a mover la vista principal hacia arriba alrededor de 20-50px y lo que sucede entonces es que la vista que tengo no se moverá ... porque no está alineada con la supervista.

¿Cómo puedo hacer esto manualmente en el guión gráfico o tengo que agregarlo programáticamente?

Estoy usando xcode 6.


¿Puede arrastrar y soltar a la entidad correcta en el esquema del documento a la izquierda? - Objetos de escena en esta captura de pantalla: ptgmedia.pearsoncmg.com/images/chap5_9780672335761/elementLinks/…
Woodstock

Lo he intentado también, el mismo resultado
Arbitur

Respuestas:


306

Hay una flecha a la derecha del valor de la constante de restricción. Si hace clic en él, aparece un menú donde puede elegir qué es lo que desea establecer en relación con su restricción. Si elige 'Ver', lo fijará en la parte superior de la vista.

ingrese la descripción de la imagen aquí


6
¡Aleluya! No sabía qué iba a hacer cuando quitaron el menú Editor -> Pin.
Jeremy Hicks

4
No puedo creer que no haya visto eso antes. Increíble.
zumzum

9
Solo una nota para las personas que no tienen ni idea como yo: es posible que no pueda realizar este cambio a menos que la vista a la que está agregando la restricción esté debajo de la guía de diseño superior. Tenía una vista sobre la guía de diseño superior y "Guía de diseño superior" no era una opción en el menú desplegable. Lo que probablemente sea una afirmación "duh" para los no novatos como yo :)
Ryan James

2
Se trata de esas pequeñas sutilezas de Xcode. Eso hace tanto. :)
Marzo

Solo una aclaración rápida que me confundió: a pesar de que la imagen tiene marcada la Guía de diseño superior, si desea fijar la vista en la PARTE SUPERIOR de la vista como la parte superior del dispositivo, seleccione "Ver".
micnguyen

57

Debería poder hacerlo resaltando la vista que desea en el guión gráfico y luego seleccionando Editor > Pin > Top Space to Superviewen el menú superior.


Esto está desactualizado en XCode 7, vea la respuesta de @ PaulGurov en su lugar.


Funciona como un encanto - XCode 6.3
NKorotkov

4
Han eliminado 'pin' del menú del editor en Xcode 7. ¿Alguna nueva solución?
Kyle G

14

TL; DR: puede limitar el margen presionando la Alttecla en el teclado.


También se puede agregar que si la vista que está intentando anclar no es una subvista directa de la vista a la que desea anclarla, el enfoque sugerido no es realmente válido. Digamos que la jerarquía de vistas se ve así y desea anclar la vista de la imagen ( Parallax Image Viewen este caso) a la vista del controlador de vista ( Viewen este caso).

ingrese la descripción de la imagen aquí

Para hacer eso, simplemente Control+ Dragdel Parallax Image Viewal View. Eso presenta las opciones predeterminadas donde puede ver Vertical Spacing to Top Layout Guidepara anclar Parallax Image Viewa la guía de diseño superior.

ingrese la descripción de la imagen aquí

Lo que desea es fijarlo en la parte superior (margen) de la vista. Para hacerlo, debe cambiar al otro conjunto de restricciones presionandoAlt

ingrese la descripción de la imagen aquí


Consejo muy útil. Esto realmente ha resuelto mi problema.
Machado

Funciona para mí, pero no sé cómo agregar varias restricciones al mismo tiempo. Ahora, tengo que agregar uno por uno, para tomarme el tiempo.
Duc Nguyen

3

Ya tenía un montón de limitaciones y solo quería cambiarlas en lugar de romperlas. Resulta que si hace doble clic en la restricción para editar, luego hace clic en el elemento que tiene el ".Margen", puede desactivar el "Relativo al margen" seleccionando ese elemento.

Seleccione el relativo al margen


¡Esto era lo que estaba buscando cuando vine aquí! Gracias
netigger

1

La respuesta de Dan funciona. Solo quería indicar que si configuras tu vista en StoryBoard en y <20, y configuras las restricciones a través del panel de pines, se configurará como supervista:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


0

Si la altura de la vista se establece en 0 por accidente, NO aparecerá la Guía de diseño de Espacio vertical a la parte superior. Sin embargo, aparecerá la guía de diseño de espacio vertical a la parte inferior, lo que debe haber tenido sentido para alguien dentro de Apple alrededor de 2004.


0

Ninguna de las respuestas anteriores funcionó para mí, en su lugar, tengo que hacer un truco para configurar la parte superior de mi subvista con la parte superior de la vista superior en lugar de la guía de diseño superior.

  • Primero, configure el centro de la subvista verticalmente con supervista.
  • Luego, cambie las restricciones del Centro Y para la subvista y la supervista a Restricción superior .

Estás listo para irte ahora.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.