I\'ve stacked a UIView on top of an existing controller in an effort to create a gradient layer. However, when I load the view the new UIView (naturally) is on top of everyt
the above answer of
bringSubviewToFront(_:) sendSubviewToBack(_:)
has changed:
In Swift 3.0
view.sendSubview(toBack:yourUIView)
view.bringSubview(toFront:yourUIView)
In Swift 4.0 && Swift 5.0
view.sendSubviewToBack(yourUIView)
view.bringSubviewToFront(yourUIView)
I would recommend looking in the UIView
documentation, where are several methods listed for the manipulation of the order of subviews:
bringSubviewToFront(_:) sendSubviewToBack(_:) removeFromSuperview() insertSubview(_:atIndex:) insertSubview(_:aboveSubview:) insertSubview(_:belowSubview:) exchangeSubviewAtIndex(_:withSubviewAtIndex:)
In your situation, you could try:
self.view.sendSubviewToBack(myGradientView)
// self is your view controller in this case.
Alternatively, because you created the myGradientView
in IB, you could change the view hierarchy to change which views appeared on top. Here's a picture to illustrate:
Hope that helps.