Programmgesteuertes Senden an vom Frontface Builder erstellte Front / Back-Elemente


84

In Interface Builder gibt es Layout - Optionen nach vorne so alle Elemente an Rücken oder senden zu senden , wie UIButton, UIImage, UILabeletc ...

Jetzt möchte ich das Gleiche zur Laufzeit programmgesteuert tun.

Gibt es eine einfache Möglichkeit, das zu tun?

Ich möchte keine unterschiedlichen Ansichten erstellen, sondern nur die Z-Achse aktualisieren.

Antworten:


192

Es gibt eine Reihe von Methoden UIView, mit denen Sie die Ansichtshierarchie ändern können.

Da Ihre Ansichten bereits in Ihre Übersicht eingefügt sind, können Sie bringSubviewToFront:für jede Ansicht in der von Ihnen gewünschten Reihenfolge problemlos einmal aufrufen .


Wollen Sie damit sagen, dass ich einen UIButton nicht direkt nach vorne / hinten senden kann? Ich muss eine Ansicht erstellen und dieser Ansicht hinzufügen. Dann verwenden Sie die oben genannten Methoden? Wenn ja, ist die Controller-Klasse der Ort, an dem eine solche Ansicht erstellt wird?
Yohann T.

11
Ein UIButton ist eine Unterklasse von UIView. Rufen Sie einfach an: [[myButton-Übersicht] bringSubviewToFront: myButton];
Sebastian Celis

Um einen kleinen Zweifel auszuräumen, den ich hatte: Wenn Sie eine Unteransicht einfügen, die bereits in der Ansichtshierarchie enthalten ist, verschiebt das Betriebssystem nur seine Position. Das Einfügen, solange die Ansicht vorhanden ist, verursacht also keinen Overhead.
OlivaresF

" bringSubviewToFront:Einmal für jede Ansicht in beliebiger Reihenfolge aufrufen", das ist ein wirklicher Trick. Gut.
Ans

43

Du könntest benutzen:

[self.view bringSubviewToFront:myButton];
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.