working poner not musica genially fondo como ios iphone uiview interface-builder autolayout

ios - poner - embed vimeo autoplay



Incrustar vistas en super vista sin perder las restricciones de reproducción automática (4)

en una aplicación de ios, tengo un UITableViewCell personalizado con muchas vistas en él. Estoy usando el diseño automático y la configuración de todas las restricciones que necesito.

Pero ahora necesito tener una vista principal (en la vista de contenido) y colocar todas las demás vistas en ella (algún tipo de vista principal para todos).

Este es un ejemplo de cómo se ve mi celda en el generador de interfaces:

Tiene todas las vistas configuradas con las restricciones.

Sé que hay una función de xcode para incrustar vistas seleccionadas dentro de una vista principal:

Así que selecciono toda la vista y selecciono para incrustarlos en una vista. Me sale lo siguiente:

Mi problema

Aunque las vistas están incrustadas correctamente en una vista de supervisión, se eliminaron las restricciones de reproducción automática y ahora tengo que recrearlas.

¿Hay alguna manera de poner todas las vistas dentro de una vista de supervisión y tener las mismas restricciones de reproducción automática sin tener que recrearlas todas? Gracias


¿Alguna vez ha intentado simplemente crear las restricciones de la vista de contenedor? No necesitas recrear todas las restricciones.

Están apareciendo como incorrectas porque al perderlas se limitan las restricciones.


Como se mencionó en los comentarios anteriores, este enfoque funciona bien para mí:

indiestack.com/2013/12/transplanting-constraints

En resumen, el enfoque es:

  1. Dale a tu antigua supervisión un identificador de restauración para que puedas identificarlo fácilmente en el XML.
  2. Abra el XIB / Storyboard con el que está trabajando en una vista de editor de texto.
  3. Copia y pega lo que hay actualmente en un archivo de copia de seguridad.
  4. Incruste su contenido en una nueva vista de supervisión utilizando el guión gráfico. No establezca nuevas restricciones todavía.
  5. Déle a su nueva supervisión una ID de restauración para que pueda identificarla fácilmente en el XML.
  6. Abra el guión gráfico / XIB actual de lado a lado con el guión gráfico / XIB antiguo que respaldó.
  7. Busque la vista del contenedor antiguo en el XML respaldado buscando el ID de restauración. Copie todo dentro de las etiquetas <constraints></constraints> y <subviews></subviews>
  8. Encuentre la nueva vista de contenedor en el XML actual y reemplace el contenido de sus etiquetas <constraints></constraints> y <subviews></subviews> con el contenido copiado
  9. Vaya al XML antiguo y copie la ID del contenedor antiguo.
  10. Ingrese al nuevo XML y reemplace la ID antigua que obtuvo en el paso 9 con la id del nuevo contenedor en todas partes dentro de los <constraints></constraints> que pegó.
  11. No olvide agregar restricciones a su nuevo contenedor que coincidan con el contenedor antiguo (en mi caso, esto fue fijar el nuevo contenedor a todos los bordes de la vista superior).

Advertencia: Esto romperá cualquier salida a las restricciones que pueda haber configurado. Salidas a otras cosas, vistas, etc ... estarán bien.


Crea una nueva vista en el nivel superior de la xib. A continuación, arrastre su vista existente en él. Las restricciones existentes todavía estarán allí. Solo tendrás que establecer nuevas restricciones para la incrustación.


  • Seleccionar todas las vistas
  • goto editor -> incrustar en -> ver
  • Nuevamente seleccione todas las vistas
  • Agregue una nueva restricción, pin arriba, abajo, adelante, arrastrando a 0