将 Storyboard 的视图置于所有其他视图之上
Posted
技术标签:
【中文标题】将 Storyboard 的视图置于所有其他视图之上【英文标题】:Put a view on Storyboard above all others 【发布时间】:2015-07-21 13:36:13 【问题描述】:我有一个 ViewController 文件,在这个 ViewController 文件中,我以编程方式创建了一个视图,它占据了窗口上所有可用的位置。
现在,我想用 Storyboard 创建一个视图。我把这个视图(在我的例子中是一个按钮)放在我的故事板上。
当我启动我的应用程序时,我看不到我的按钮,因为它位于我之前以编程方式创建的视图下。
这可以让我的故事板视图高于另一个视图吗?
非常感谢!
【问题讨论】:
您能否提供代码行,以便在 ViewController 中添加视图并将其添加到视图中。看起来你使用 addSubview 方法。 在方法中添加按钮视图吗? 【参考方案1】:是的,这是可能的。
看起来你使用addSubview
方法。
您遇到的问题是以这种方式添加的视图覆盖了现有视图。
您可以使用bringSubviewToFront
将按钮置于最前面,也可以使用insertSubview:belowSubview
和insertSubview:aboveSubview
来解决此类问题。在这两种情况下,您都需要将按钮存储在属性中。
【讨论】:
【参考方案2】:这在某种程度上取决于您的视图层次结构设置。
我假设:
A - View controller view
| B - Your button
| C - Programmatically added fullscreen view
在上述情况下,您可以这样做:
- (void)viewDidLoad
[super viewDidLoad];
[self.view bringSubviewToFront:self.button];
Point is bringSubviewToFront:
将子视图移动到层次结构的顶部。
【讨论】:
【参考方案3】:所以你必须为按钮创建一个插座(将故事板中的按钮连接到你的 .swift 文件中给它的名称)一旦你以编程方式添加了视图,你只需要这样做
self.view.bringSubviewToFront(button)
假设该按钮是插座的名称。此行将在以编程方式添加视图后添加。
【讨论】:
以上是关于将 Storyboard 的视图置于所有其他视图之上的主要内容,如果未能解决你的问题,请参考以下文章
将 Storyboard 和 xib 用于同一个视图控制器?
导航控制器将 Storyboard 中的所有视图向下移动 64 像素,尽管它被隐藏了。
Storyboard xib 实时视图在左上角呈现所有子视图