Invia a livello di programmazione elementi fronte / retro creati dal generatore di interfacce


84

Nel costruttore di interfaccia, ci sono opzioni di layout di inviare per eseguire o inviare al fronte eventuali elementi come UIButton, UIImage, UILabelecc ...

Ora, vorrei fare lo stesso in fase di esecuzione, a livello di programmazione.

C'è un modo semplice per farlo?

Non voglio creare viste diverse, aggiorna solo l'asse z.

Risposte:


192

Esistono numerosi metodi UIViewche consentono di modificare la gerarchia di visualizzazione.

Poiché le tue visualizzazioni sono già inserite nella tua superview, puoi facilmente chiamare bringSubviewToFront:una volta per ciascuna visualizzazione nell'ordine che preferisci.


Stai dicendo che non posso inviare direttamente un UIButton davanti / dietro? Devo creare una vista e aggiungerla a quella vista. Quindi utilizzare i metodi sopra? In tal caso, la classe controller è il luogo in cui creare tale visualizzazione?
Yohann T.

11
Un UIButton è una sottoclasse di UIView. Basta chiamare: [[myButton superview] bringSubviewToFront: myButton];
Sebastian Celis

Giusto per chiarire un piccolo dubbio che avevo: se inserisci una sottoview che è già nella gerarchia della vista, il sistema operativo si limiterà a spostare la sua posizione. Quindi, l'inserimento fino a quando esiste la vista non causerà alcun sovraccarico.
olivaresF

"chiama bringSubviewToFront:una volta per ogni visualizzazione nell'ordine che preferisci" è davvero un trucco. Bene.
Ans

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.