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.

Yohann T.
quelle

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 .

Sebastian Celis
quelle
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];
hanumanDev
quelle