2016-05-10 8 views
0

Ich habe eine uiview erstellt und eine Unteransicht hinzugefügt. Dann erlaube ich dem Benutzer, die Unteransicht frei um den Bildschirm herum zu ziehen. Aber ich habe Probleme, wenn ich die Unteransicht oben auf dem Bildschirm verschiebe. Bitte sehen Sie sich das Bild unten an. Die Unteransicht überschreibt die oberste Ansicht auf dem Bildschirm. Was ich will, ist, dass die oberste Ansicht die Unteransicht überschreiben soll. Wie kann ich in diesem Fall die Ebene einer uiview ändern?Wie lege ich eine höhere Ebene in einer Ansicht an, damit sie eine andere Ansicht überschreibt?

enter image description here

wenn ich self.titleView.bringSubviewToFront(sv)

verwenden sehe ich ein anderes Problem, wie in Bild unten gezeigt. Die Statusleiste befindet sich nicht oben in der Bildansicht.

enter image description here

+0

Was ist eine Übersicht über die ziehbare Ansicht? – Avt

+0

die Superansicht der ziehbaren Ansicht ist die Bildansicht –

+0

Ich habe meine Antwort aktualisieren –

Antwort

1

können Sie verwenden bringSubviewToFront auf Elternansicht Unteransicht nach vorne wie folgt zu bringen:

Objective-C:

[parentView bringSubviewToFront:childView]; 

swift:

parentView.bringSubviewToFront(childView) 

Edit:

Verwenden Sie die folgende Methode, um Ansichten zu verwalten:

bringSubviewToFront(_:) 
sendSubviewToBack(_:) 
removeFromSuperview() 
insertSubview(_:atIndex:) 
insertSubview(_:aboveSubview:) 
insertSubview(_:belowSubview:) 
exchangeSubviewAtIndex(_:withSubviewAtIndex:) 

wie

self.view.sendSubviewToBack(myView) 

Weitere Detail-Check: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/doc/uid/TP40006816-CH3-SW46

Hope this :)

+0

es funktioniert teilweise. Ich habe den Beitrag aktualisiert. Wie bringt man die Statusleiste nach vorne? –

1
parentView.bringSubviewToFront(view) 

UPDATE

beachten: Sie müssen in Betracht gezogen, dass parentView die Eltern Ihrer Ansicht ist. Um dieses Konzept besser zu erklären, wenn Sie eine Zeile wie diese haben:

self.container.addSubview(view) 

so self.container ist die Ansicht, Eltern, verwirrt nicht mit der Ansicht unten Ihrer Ansicht ... es kann nicht das gleiche sein.

+0

Bitte überprüfen Sie den zweiten Screenshot. Es funktioniert nicht für den Container, aber nicht für die Statusleiste. Wie lässt sich die Statusleiste von meiner Unteransicht überschreiben? –

+0

Abhängig davon, wo Sie Ihren Container hinzufügen. Wenn Ihr Container zu UIWindow hinzugefügt wurde, können Sie über der Statusleiste bleiben. Verwenden Sie eine benutzerdefinierte Third-Part-Bibliothek? –

0

hilft Wenn Ihr ziehbar Ansicht ein Subview der Bildansicht ist versuchen, masksToBounds einstellen zu wahr:

imageView.layer.masksToBounds = True 

Der Grund für Ihr Problem liegt wahrscheinlich darin, dass Sie zPosition von draggableView.layer auf eine positive Zahl setzen. Normalerweise ist es besser, Methoden wie insertSubview(_:aboveSubview:) und bringSubview(toFront:) zu verwenden, um die Reihenfolge der Unteransicht zu verwalten.

+0

Der zweite Screenshot zeigt, dass das Problem die Statusleiste oben auf dem Bildschirm ist. Gibt es eine Möglichkeit, den Layer zu konfigurieren? –

Verwandte Themen