Lo que me gustaría hacer es arrastrar un componente / vista de una supervista a otra en el generador de interfaces de Xcode sin que se restablezca su marco / posición.
El comportamiento predeterminado de Xcode al hacer esto parece ser centrar la vista que se mueve vertical y horizontalmente en su nueva supervista, conservando sus dimensiones. Esto es extremadamente frustrante, ya que significa que la vista debe reposicionarse manualmente en su nueva supervista. Pero lo coloqué correctamente antes de moverlo, por lo que me gustaría que Xcode solo recordara todos los atributos de su marco en lugar de solo su ancho / alto. es posible?
ios
xcode
interface-builder
aroth
fuente
fuente
Respuestas:
Otra solución:
fuente
¡Encontré algo que podría ayudarlos!
La tarea es reagrupar las "vistas secundarias" en la "vista principal" para que se conviertan en elementos secundarios de la vista principal jerárquicamente y retengan las posiciones físicas en exhibición como antes de la acción.
Primero, ajuste la vista principal para que cubra físicamente el área de las vistas secundarias. En segundo lugar, asegúrese de que todos los niños estén debajo en la lista de vistas.
Ahora seleccione todos los niños con el mouse y muévalos, por ejemplo, un píxel hacia arriba y un píxel hacia abajo (solo para decir IB hay algún cambio). Después de eso, libere a los niños y ellos mágicamente se convertirán en hijos del padre y mantendrán sus posiciones en exhibición.
Me funciona en OSX 10.8.2 y Xcode 4.6.
¡Buena suerte!
fuente
Me las arreglé para ahorrar mucho tiempo en reposicionar cosas e hice esto:
Sin embargo, no es muy elegante, no veo por qué XCode no lo admite con Shift o algo así.
fuente
Seleccione todos los controles que desea mover de una UIView a otra UiView (no sea un niño) o ScrollView
Cortar pegar
Ahora, después de arrastrar el nuevo UIView / ScrollView a su UIView existente, no haga clic una vez para seleccionarlo, en su lugar, haga DOBLE clic en el nuevo UIView / ScrollView y pegue todos los controles.
La diferencia de distancia seguirá siendo la misma entre todos los controles, pero es posible que tenga que reposicionar los controles nuevamente. Así que no haga clic en ningún lugar hasta que los haya reposicionado, simplemente reposicione todos los controles con las flechas de navegación ya que ya están seleccionados, o puede que tenga que seleccionarlos nuevamente.
NOTA: estoy en XCode 4.2
fuente
Hice algo similar a la solución de Stepan, sin usar un guión gráfico. En el IB mientras la vista de ViewController está abierta:
fuente
Esta es la mejor solución para copiar subvistas a otra vista y retener las posiciones:
El paso 6 eliminaría la vista de incrustación y habrá copiado solo las subvistas.
fuente
Xcode Interface Builder se estropea cuando una vista principal se arrastra y se suelta en otra vista (UIView, ScrollView, StackView)
P:
Incrustar una vista (que contiene muchas otras subvistas dentro de ella) en un ScrollView o en otra vista de nivel superior no es sencillo con lo que he visto hasta ahora. Lo que sucede poco después es que todas las subvistas parecen estar fuera de lugar debido a que no pudieron encontrar su marco original.
R:
Siga los siguientes pasos y podrá resolverlo lo más fácilmente posible:
¡No, todavía no he terminado! A veces, puede experimentar que hay algunos problemas más relacionados con la restricción de la interfaz de usuario, tendrá que resolverlos en consecuencia.
fuente
Detecté otro acercamiento. Básicamente es: Mover = Cortar + Pegar
De esta manera lo haces:
De esta manera no:
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'):
Y desde la vista de los padres originales (P) usted:
Antes de:
Después:
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.
fuente
Lo que me ayudó a resolver este problema fue:
fuente