2014-11-10 16 views
5

Ich habe eine Reihe von Etiketten und Schaltflächen auf dem Bildschirm. Um auf den Benutzer zu reagieren, der irgendwo auf dem Bildschirm tippt, habe ich einen UIButton ("wholeScreenButton") erstellt, seinen Hintergrund klar gemacht und ihn so groß wie Superview gemacht. Jetzt benutze ich zur Laufzeit den unteren Code, um den Button auf jedes andere Label zu setzen.Swift bringSubViewToFront funktioniert nicht

self.wholeScreenButton.bringSubviewToFront(self.wholeScreenButton) 

Aber es funktioniert nicht. Der Benutzer kann weiterhin auf einige der Schaltflächen tippen, die unterhalb des ganzen Bildschirmbereichs liegen sollen und nicht erreichbar sein sollen. Was mache ich falsch?

Antwort

14

Es sollte sein:

self.view.bringSubview(toFront: self.wholeScreenButton) 

Sie müssen bringSubviewToFront auf der übergeordneten Ansicht aufzurufen.

+0

Vielen Dank! – TPCO

+0

Wie würden Sie das mit einem UIBarButton machen? @ronfessler – enlyte

2

versuchen Sie dies:

self.wholeScreenButton.superView.bringSubviewToFront(self.wholeScreenButton) 

diese ll Arbeit jedes Mal für mich

+0

Dies ist um den heißen Brei Weg. Einfacher Ansatz ist self.view.bringSubviewToFront() –

Verwandte Themen