Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to programmatically set view to the front/back?

I'm working on an application that uses UIViews as backgrounds to text. I've put the views behind the text in the storyboard but for some reason some still seem to be in front of the text. Is there a way to send these view to the back programmatically? Here is a screenshot of what im talking aboutPicture

like image 415
Ross Sullivan Avatar asked Aug 13 '16 21:08

Ross Sullivan


2 Answers

You can use on of these two:

- (void)bringSubviewToFront:(UIView *)view;
- (void)sendSubviewToBack:(UIView *)view;

Objective-C Usage

view.sendSubviewToBack(subview) and view.bringSubviewToFront(subview)

SWIFT 4.2 Usage

view.sendSubview(toBack: subview)
view.bringSubview(toFront: subview)
  • bringSubviewToFront: Moves the specified subview so that it appears on top of its siblings.
  • sendSubviewToBack: Moves the specified subview so that it appears behind its siblings.

https://developer.apple.com/reference/uikit/uiview?language=objc

like image 65
Harsh Avatar answered Oct 29 '22 18:10

Harsh


sendSubviewToBack API is what you want for this task.

Moves the specified subview so that it appears behind its siblings.

This method moves the specified view to the beginning of the array of views in the subviews property.

UIView class reference

Below is a code snippet in Swift lang of how to call this API:

Swift

yourSuperview.sendSubviewToBack(yourSubview)
like image 24
Evgeny Karkan Avatar answered Oct 29 '22 18:10

Evgeny Karkan