Programowo wysyłaj do elementów z przodu / z tyłu utworzonych z konstruktora interfejsu


84

W interfejsie konstruktora, istnieją opcje układu wysłać do tyłu lub do przodu wysyłać żadnych elementów, takich jak UIButton, UIImage, UILabelitp ...

Teraz chciałbym zrobić to samo w czasie wykonywania, programowo.

Czy jest na to łatwy sposób?

Nie chcę tworzyć różnych widoków, po prostu zaktualizuj oś z.

Odpowiedzi:


192

Istnieje wiele metod UIViewumożliwiających modyfikowanie hierarchii widoków.

Ponieważ Twoje widoki są już wstawione do Twojego nadzoru, możesz z łatwością wywołać bringSubviewToFront:jeden raz dla każdego widoku w dowolnej kolejności.


Czy mówisz, że nie mogę bezpośrednio wysłać UIButton do przodu / do tyłu? Muszę utworzyć widok i dodać go do tego widoku. Następnie użyj powyższych metod? Jeśli tak, to czy klasa kontrolera jest miejscem do tworzenia takiego widoku?
Yohann T.

11
UIButton jest podklasą UIView. Wystarczy zadzwonić: [[myButton superview] bringSubviewToFront: myButton];
Sebastian Celis

Aby wyjaśnić małą wątpliwość, którą miałem: jeśli wstawisz widok podrzędny, który jest już w hierarchii widoków, system operacyjny zmieni tylko swoją pozycję. Tak więc wstawianie tak długo, jak istnieje widok, nie spowoduje żadnego narzutu.
olivaresF

„zadzwoń bringSubviewToFront:raz dla każdego wyświetlenia w dowolnej kolejności” to naprawdę sztuczka. Dobry.
Ans

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.