如何在Swift的另一个视图前面显示视图?

以下是我在IB中组织视图的方式,顶部 – >应用程序启动时的底部。

用户可以做一些事情使“类别表视图标题”暂时扩展到“名称视图” – 但是一旦这样做,分配给“类别表视图标题”的.TouchDown操作不再适用于与“名称视图”重叠的任何位置(即,用户可以在不与名称视图重叠的任何地方点击标题,它仍然可以工作)。

在此处输入图像描述

我知道这可能令人困惑,所以我抽出了一些盒子。 左边是原版,右边是用户操作 – 问题出现在右侧,红色框上的操作仅在用户点击下半部而不是上半部时才有效。

在此处输入图像描述

我的猜测是因为视图层次结构中的标题比名称视图更低,但是我很难在不弄乱一堆约束的情况下更改它。

我也试过设置nameView.hidden = true,但这不起作用。

如果要将子视图放在前面,可以使用:

 self.view.bringSubviewToFront(yourView) 

SWIFT 3更新

 self.view.bringSubview(toFront: yourView) 

发送视图给回: –

 self.view.sendSubview(toBack: yourView) 

您可以使用以下方法控制子视图的顺序:来自superview的bringSubviewToFront和sendSubviewToBack。

您可以使用self.view.subview数组访问superview包含的所有子视图。

该方法自swift 3以来已更新

什么对我有用,希望对你有用:

 YourView.bringSubview(toFront: yourelementA) YourView.bringSubview(toFront: yourelementB) 

或者,您可以使用以下内容发送前面的对象:

 YourView.sendSubview(toBack: yourelementC) 

我希望这有帮助