How can I insert a subview below the other subviews

In IB the subviews of a view are listed in a hierarchy under that view. Subviews which appear above their siblings in that hierarchy will appear below them in the rendered view. So in the example below, the in 99:99 AM label appears under the Sign In button at runtime.

If your background is just a UIImageView, consider adding the view to your NIB and then setting its UIImage at runtime. That way, you don't get confused. Also, what Paul.s said.

enter image description here


If you Google UIView you'll end up at the documentation - UIView Class Reference

Then you need to look down the list of methods until you find something that sounds like it will roughly fit your needs like these two:

- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index

and

- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview

At this point you just have to read the descriptions of how the methods behave and pick whichever one is easiest to implement for your design. It's really good for your own learning if you try to find the answer yourself before you ask a question


You can use the method insertSubview:atIndex:

[self.view insertSubview:backgroundView atIndex:0];

You can call this method in Swift 3

view.insertSubview(yourSubView, at: 0)

or

view.sendSubview(toBack: yourSubView)