如何以编程方式将视图设置为前/后?

时间:2016-08-13 21:13:07

标签: ios swift xcode uikit uiview-hierarchy

我正在开发一个使用UIView s作为文本背景的应用程序。我已经在storyboard中将观点置于文本背后,但出于某种原因,有些似乎仍然在文本的前面。有没有办法以编程方式将这些视图发送到后面?这是我正在谈论Picture

的截图

3 个答案:

答案 0 :(得分:11)

你可以使用以下两个:

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

Objective-C用法

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

SWIFT 4.2用法

view.sendSubview(toBack: subview)
view.bringSubview(toFront: subview)
  • bringSubviewToFront: 移动指定的子视图,使其显示在其兄弟姐妹的顶部。
  • sendSubviewToBack: 移动指定的子视图,使其显示在其兄弟姐妹后面。

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

答案 1 :(得分:1)

sendSubviewToBack API就是您要完成此任务的目标。

  

移动指定的子视图,使其显示在其兄弟姐妹后面。

     

此方法将指定视图移动到subviews属性中视图数组的开头。

UIView课程参考

以下是Swift lang中有关如何调用此API的代码段:

Swift

yourSuperview.sendSubviewToBack(yourSubview)

答案 2 :(得分:0)

Swift 5

yourSuperview.sendSubviewToBack(yourSubview)

 yourSuperview.bringSubviewToFront(yourSubview)