如何在其父视图之上添加子视图中的视图?

Posted

技术标签:

【中文标题】如何在其父视图之上添加子视图中的视图?【英文标题】:How can I add a view from subviews on top of its superview? 【发布时间】:2010-11-07 03:55:36 【问题描述】:

我有一个 mainViewController,在它的 nib 文件中我添加了一个信息按钮,其中的动作是在两个子视图之间翻转,子视图 A 和子视图 B。

在 mainViewController 的 viewDidLoad 下,我正在插入子视图 A。这里我注意到信息按钮在子视图 A 的前面,这很好。

问题来了,当按下位于子视图 A 的 nib 文件中的任何按钮时,它们会在其中添加新的子视图,信息按钮仍保留在前面。

那么,我怎样才能在所有父视图堆栈的前面添加这些后来的子视图,这样信息按钮就不会出现?或者如何隐藏信息按钮?

【问题讨论】:

【参考方案1】:

您可以通过调用将子视图放在其他所有内容的前面

[view bringSubviewToFront:subview];

您可以通过调用它的 setHidden 函数来隐藏按钮(或任何其他 UI 元素),如下所示:

[button setHidden:YES];

【讨论】:

【参考方案2】:

始终应用程序一次只能包含一个窗口。所以这是最好的方法。

UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow];
[mainWindow addSubview:yourView]; 

【讨论】:

以上是关于如何在其父视图之上添加子视图中的视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在其父视图坐标系中获得子视图的有效边界

移动子视图时,如何将其子视图保留在其父视图中的同一位置?

如果我的子视图的大小与其父视图相同,如何使用 ctrl-drag 在 IB 中设置约束?

如何检测拖动到那里的子视图中的触摸(或获取哪个子视图位于其父视图中的点击下方的最快方法)

如何在自定义视图中将子视图的框架设置为其父框架

如何将子视图上的触摸事件的坐标转换为其父视图中的坐标?