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

9
我正在开发一个使用 UIView 作为文本背景的应用程序。我已经在 storyboard 中将这些视图放置在文本后面,但由于某种原因,一些视图仍然似乎在文本前面。有没有一种方法可以通过编程方式将这些视图发送到后面?以下是我所说的截图:图片
3个回答

17

你可以使用以下两种方法之一:

- (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
非常感谢!我知道这里有一个方法,只是不知道语法。 - Ross Sullivan

1

sendSubviewToBack API是您需要的任务。

将指定的子视图移动,使其出现在其兄弟视图后面。

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

UIView类参考

下面是一个用Swift语言调用此API的代码片段:

Swift

yourSuperview.sendSubviewToBack(yourSubview)

0

Swift 5

yourSuperview.sendSubviewToBack(yourSubview)

或者

 yourSuperview.bringSubviewToFront(yourSubview)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接