39

每个人。

我有一些标签,我在 xib 文件中绘制它们,并使用代码添加背景视图,但背景视图在这些标签的前面,所以我看不到它们。所以,我的问题是如何在这些标签下方添加背景视图。

先感谢您。

4

6 回答 6

64

如果你谷歌UIView你最终会在文档 - UIView 类参考

然后,您需要查看方法列表,直到找到听起来大致符合您需求的方法,例如这两个:

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

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

此时,您只需阅读有关方法行为方式的描述,然后选择最容易为您的设计实现的方法。如果您在提出问题之前尝试自己找到答案,这对您自己的学习非常有帮助

于 2012-04-07T03:38:26.080 回答
44

您可以使用该方法insertSubview:atIndex:

[self.view insertSubview:backgroundView atIndex:0];
于 2012-04-07T03:37:09.640 回答
6

您可以在 Swift 3 中调用此方法

view.insertSubview(yourSubView, at: 0)

或者

view.sendSubview(toBack: yourSubView)
于 2017-06-21T19:01:51.567 回答
2

在 IB 中,视图的子视图列在该视图下的层次结构中。在该层次结构中出现在其兄弟姐妹之上的子视图将在渲染视图中出现在它们之下。因此在下面的示例中,in 99:99 AM标签在运行时出现在Sign In按钮下方。

如果您的背景只是 UIImageView,请考虑将视图添加到您的 NIB,然后在运行时设置其 UIImage。这样,您就不会感到困惑。还有,Paul.s 所说的。

在此处输入图像描述

于 2012-04-07T03:46:59.553 回答
2

斯威夫特 3 及更高版本。

view.insertSubview(theViewYouWantToAdd, at: 0)
于 2017-06-16T06:24:04.543 回答
0

https://medium.com/swift-programming/dynamic-layouts-in-swift-b56cf8049b08

使用 VerticalLayout 作为父级。它非常简单有效

于 2019-05-15T11:22:28.320 回答