How to programmatically set view to the front/back?
Asked Answered
A

3

9

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

Abstractionist answered 13/8, 2016 at 21:13 Comment(0)
D
17

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

Drought answered 13/8, 2016 at 21:17 Comment(1)
Thanks a ton! I figured there was method i just didn't know the syntax.Abstractionist
W
1

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)
Wombat answered 13/8, 2016 at 21:16 Comment(0)
K
0

Swift 5

yourSuperview.sendSubviewToBack(yourSubview)

or

 yourSuperview.bringSubviewToFront(yourSubview)
Kresic answered 2/6, 2021 at 21:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.