Detecté otro acercamiento. Básicamente es: Mover = Cortar + Pegar
De esta manera lo haces:
- conseguir que todas sus subvistas sean secundarias de la nueva vista principal (P ')
- mantenga (casi) todas sus restricciones en el Storyboard basado en Auto-Layout
- mantenga las posiciones relativas de su subvista (fotogramas) entre sí
De esta manera no:
- editar archivo de Storyboard en un editor de texto
La base es que cada vista excepto una (raíz) en Storyboard tiene su vista principal . A continuación, cuando copia / mueve varias subvistas, pierde marcos y restricciones .
La respuesta es bastante simple. Puede hacer una copia de sus subvistas (SV) copiando su vista principal (P) en la nueva vista principal (P '). De esta manera, es posible que deba volver a crear solo las restricciones de esa nueva vista principal (P ') a su nueva vista principal, pero no para cada subvista que desea mover.
Después de hacer una copia de la vista principal (P) en una nueva (P '), desde esa nueva vista (P'):
- eliminar a todos los niños excepto a los que quería mover
- recrear nuevas restricciones de padre (P ')
- recrear posibles salidas de Interface Builder a (SV)
Y desde la vista de los padres originales (P) usted:
- eliminar a todos los niños que quería mover
Antes de:
Vista1
Vista2
PAG
SVs-quieres-mover
SVs-tu-no-quieres-moverte
Vista3
Después:
Vista1
Vista2
PAG
SVs-tu-no-quieres-moverte
Vista3
PAG'
SVs'-you-want-move
Debo enfatizar que esto no se generaliza bien si tiene, por ejemplo, UIScrollView como vista principal. Luego, una copia sería nuevamente un UIScrollView, lo que puede no ser deseable.
Otra cosa es que cuando elimine algunas de las subvistas (SV) en la vista principal original (P), es posible que deba volver a crear algunas restricciones si otras (subvistas no móviles) las hacen referencia. Pero deberías hacer eso de todos modos.