【发布时间】:2012-04-20 13:05:29
【问题描述】:
每个人。
我在 xib 文件中绘制了一些标签,并且 使用代码添加背景视图,但背景视图 在这些标签的前面,所以我看不到它们。所以, 我的问题是如何在这些下方添加背景视图 标签。
提前谢谢你。
【问题讨论】:
标签: ios subview addsubview
每个人。
我在 xib 文件中绘制了一些标签,并且 使用代码添加背景视图,但背景视图 在这些标签的前面,所以我看不到它们。所以, 我的问题是如何在这些下方添加背景视图 标签。
提前谢谢你。
【问题讨论】:
标签: ios subview addsubview
可以使用insertSubview:atIndex:的方法
[self.view insertSubview:backgroundView atIndex:0];
【讨论】:
如果您使用 Google 搜索 UIView,您最终会看到文档 - UIView Class Reference
然后您需要查看方法列表,直到找到听起来大致符合您需求的方法,例如这两个:
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index
和
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview
此时,您只需阅读有关方法行为方式的描述,然后选择最容易为您的设计实现的方法。如果你在提问之前尝试自己找到答案,这对你自己的学习很有好处
【讨论】:
在 IB 中,视图的子视图列在该视图下的层次结构中。在该层次结构中出现在其兄弟姐妹之上的子视图将在渲染视图中出现在它们之下。所以在下面的例子中,in99:99 AM 标签在运行时出现在Sign In 按钮下方。
如果您的背景只是一个 UIImageView,请考虑将视图添加到您的 NIB,然后在运行时设置它的 UIImage。这样,您就不会感到困惑。另外,what Paul.s said。
【讨论】:
Swift 3 及更高版本。
view.insertSubview(theViewYouWantToAdd, at: 0)
【讨论】:
你可以在 Swift 3 中调用这个方法
view.insertSubview(yourSubView, at: 0)
或
view.sendSubview(toBack: yourSubView)
【讨论】:
https://medium.com/swift-programming/dynamic-layouts-in-swift-b56cf8049b08
使用 VerticalLayout 作为父级。非常简单有效
【讨论】: