Enviar programáticamente a elementos frontales / posteriores creados a partir del generador de interfaces


84

En constructor de interfaces, hay opciones de diseño para enviar hacia atrás o de delante enviar a los elementos tales como UIButton, UIImage, UILabeletc ...

Ahora, me gustaría hacer lo mismo en tiempo de ejecución, mediante programación.

¿Existe una forma sencilla de hacerlo?

No quiero crear vistas diferentes, solo actualizo el eje z.

Respuestas:


192

Hay varios métodos UIViewque le permiten modificar la jerarquía de vistas.

Dado que sus vistas ya están insertadas en su supervista, puede llamar fácilmente bringSubviewToFront:una vez para cada vista en el orden que desee.


¿Estás diciendo que no puedo enviar directamente un UIButton al frente / atrás? Tengo que crear una vista y agregarla a esa vista. ¿Entonces usa los métodos anteriores? Si es así, ¿es la clase de controlador el lugar para crear tal vista?
Yohann T.

11
Un UIButton es una subclase de UIView. Simplemente llame: [[myButton superview] bringSubviewToFront: myButton];
Sebastian Celis

Solo para aclarar una pequeña duda que tenía: si inserta una subvista que ya está en la jerarquía de vista, el sistema operativo solo moverá su posición. Por lo tanto, insertar mientras exista la vista no causará ninguna sobrecarga.
olivaresF

"Llame bringSubviewToFront:una vez para cada vista en el orden que desee", eso es realmente un truco. Buena.
Respuesta

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.