XCode 4 Interface Builder: una mejor forma de trabajar con muchas vistas superpuestas

En IB tengo bastantes vistas que se muestran. Muchos de ellos están ocultos cuando la aplicación se carga, pero se muestran más tarde cuando se presionan los botones. Todo esto está bien, pero al build este layout en IB es extremadamente difícil diseñar cualquier cosa porque hay tantas vistas superpuestas, algunas de las cuales son parcialmente transparentes (las que están configuradas como ocultas) y otras están completamente superpuestas y cubren otras. Esto hace que el layout sea muy difícil.

¿Cuál es el mejor método cuando se presentan muchas vistas como esta? ¿Hay otra forma de romper las cosas? O mejor aún, ¿puedo ocultar una vista completamente (como en Photoshop) para poder editar las que están debajo y luego volver a activarla?

No conozco ninguna forma de ocultar objects en el canvas, pero un truco útil para layouts complejos es hacer doble clic en un elemento del tree de documentos a la izquierda, esto selecciona el elemento y pone el foco en el canvas, puede el uso de las teclas del cursor para empujarlo.

Esto no resuelve el problema de no poder ver las cosas porque hay, por ejemplo, cinco o seis tags que ocupan el mismo espacio, pero si esa es la situación, puede ser una mejor idea tener una sola label y cambiar su contenido en código.

Otra opción al intentar seleccionar una vista que está oculta por otro es el atajo:

'ctrl' + 'shift' y haga clic

Muestra una list de todas las vistas debajo del cursor.

Me encontré con este problema para una aplicación que estoy construyendo que tiene una image de vista arial de un parque con puntos de acceso seleccionables. Cuando se hace clic en un punto de acceso, aparece una window emergente UIview con información sobre ese lugar en el parque. Yo uso el mismo VC / XIB para tres parques. Esto hace que el XIB esté realmente ocupado y difícil de trabajar (es decir, el mismo problema que tiene). Las UIViews de detalle hacen que sea difícil trabajar con las vistas debajo. Mi solución era seleccionar cada UIView detallada que ocultaba la parte del XIB en la que quería trabajar, y agregar 1000 al origen UIView.x en el inspector de tamaño. Esto movió esas UIViews lo suficiente como para que yo hiciera lo que necesitaba con el XIB. Luego, cuando terminé, los moví hacia atrás en x 1000. (Solo necesitaba moverlos horizontalmente para hacer lo que necesitaba)

Sé que es torpe, pero dado que XCode no tiene una forma conveniente de ocultar partes de un XIB, ¡fue el enfoque más rápido que se me ocurrió!

Un enfoque para manejar elementos superpuestos en IB es:

  1. Asegúrese de que los grupos de elementos que desea ocultar se agrupan en Vistas.

  2. Dé a estos nombres de vistas: por ejemplo, ViewOptionA, ViewOptionB y ViewOptionC.
    Puede hacer esto haciendo clic en el nombre de la vista en el tree mientras está seleccionado y luego escribiendo un nuevo nombre.

  3. Cuando desea ocultar uno de esos grupos de elementos:
    a) Seleccione la Vista por:
    i) Haciendo clic en él en el tree a la izquierda o
    ii) Ctrl-Shift Al hacer clic en el editor de layout y luego seleccionar la vista de la list.

    b) En el inspector de attributes, configure Alpha a 0.

  4. Cuando desee mostrar uno de esos grupos de elementos:
    En cuanto a 2) pero establece Alpha nuevamente en 1

[¡No olvides mostrar todas las vistas antes de publicarlas!
Si eres olvidadizo como yo, entonces tal vez podrías subclasificar UIView y establecer Alfa en 1. Todavía no he probado esta idea de subclasss.]