将 Storyboard 上的视图置于所有其他视图之上

Put a view on Storyboard above all others

我有一个 ViewController 文件,在这个 ViewController 文件中,我以编程方式创建了一个视图,它占据了 window.

上的所有可用位置

现在,我想用故事板做一个视图。我把这个视图(在我的例子中是一个按钮)放在我的 Storyboard 上。

当我启动我的应用程序时,我看不到我的按钮,因为它位于我之前以编程方式创建的视图下。

是否可以让我的 Storyboard 视图高于另一个视图?

非常感谢!

所以你必须为按钮创建一个出口(将故事板中的按钮连接到你的 .swift 文件中给它的名称)以编程方式添加视图后,你只需要做

self.view.bringSubviewToFront(button)

假设按钮是插座的名称。此行将在以编程方式添加视图后添加。

这在某种程度上取决于您的视图层次结构设置。

我假设是这样的:

A - View controller view
  | B - Your button 
  | C - Programmatically added fullscreen view

在上述情况下,您可以这样做:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.view bringSubviewToFront:self.button];
}

点是 bringSubviewToFront: 将子视图移动到层次结构的顶部。

是的,这是可能的。

您似乎使用了 addSubview 方法。 您遇到的问题是以这种方式添加的视图覆盖了现有视图。

您可以使用 bringSubviewToFront 将按钮置于最前面,或者使用 insertSubview:belowSubviewinsertSubview:aboveSubview 来解决此类问题。在这两种情况下,您都需要将按钮存储在 属性.