¿Cómo detiene a Interface Builder incrustando un control en una UIView cuando lo arrastro?

Cuando muevo controles en Interface Builder y pase una UIView. ¿Hay de todos modos para detener IB de incrustar el control en la UIView y hacer que sea hijo de la UIView en la jerarquía de treees.

BEFORE +UIView +UIButton +UIView 

Si muevo el button UIB con el mouse y lo coloco por encima de UIView IB lo haré hijo de UIView

 AFTER +UIView +UIButton +UIView 

¿Hay alguna forma de bloquear la vista inferior? A menudo los uso como backgrounds y los tinte.

Puede volver a colocar sin incrustar presionando y manteniendo Cmd mientras arrastra el elemento.

Editar: Esto solo se confirma para que funcione con Xcode 7.

Me di por vencido y decidí que todos los grupos de controles deberían tener una UIView padre. Puede ser invisible (backgroundColor of clearColor)

Seleccione todos los controles y elija Menú del editor> Insertar en la vista.

Después de eso, podemos moverlos sin problemas dentro de su propia vista de agrupación sin que salten niveles en la jerarquía.

Un problema con Embed in View es cuando usa tags y viewWithTag:

Si construye su vista con más de un controller VC y subprocesss de tags, asegúrese de que los identificadores de label sean únicos en toda la jerarquía de vistas.

Esto se debe a que viewWithTag: solo devolverá el primer control que coincida con el id y parece search a través de la jerarquía de vista antes de moverse por un nivel para continuar la búsqueda.

Entonces, si elige el menu Editor> Incrustar en vista, moverá el control hacia abajo un paso en la jerarquía. Entonces, una llamada a viewWithTag: 999 podría haber recuperado su control antes, pero ahora puede devolver un control completamente diferente.

¡También puede fallar! Es común emitir el resultado de UIView para controlar, por ejemplo, UIImageView Luego, llamar al método en el control. Si viewWithTag encuentra un control diferente al esperado, puede que ni siquiera sea un UIImageView, por lo que llamar a un método faltante arrojaría una exception.

BÁSICAMENTE, nunca use tags como debe depurar en XIB y código y no se deben verificar las ID duplicadas. Arrastre desde XIB a .h y cree salidas en su lugar.