2012-08-03 70 views
0

我有一个非常复杂的视图层次结构。在每个部分有一个带有UINavigation Controller的主 - 细节视图控制器,每个视图控制器都有自己的UViews。我有一个覆盖视图,它支持拖放事件的缓冲区或持有者。无论在任何特定时间点,我都希望将此视图置于所有子视图的顶部,而不考虑层次结构。UIView总是在顶部

有没有办法让我可以把UIView放在最上面。

喜欢的东西

 
    overlayView.alwaysOntop = YES; 

我可以手动使用功能一样,带来子视图前,插入上述副视点,下面等,但是最让我的应用程序非常复杂。

+1

你为什么不为你的'overlayView'创建一个UIView,为你的其他视图创建第二个'UIView'?你应该只在前面加上'overlayView'一次,并且你可以在你的另一个'UIView'上自由工作(添加或删除任何子视图),它们总是在你的'overlayView'下面。它看起来更合乎逻辑,而不是像小丑那样在每一个案件中提出或插入上/下方法。 – holex 2012-08-03 16:29:29

+0

好的。我试过了。我有一个窗口,我的window.vie.rootViewController被设置为我的splitViewcontroller,所以这个转换必须通过窗口完成。 [window insertsubview:overlayview above:slitviewController.view]; 但这没有奏效。我认为这对参数有一些限制。你有什么线索吗?我怎么做。 – 2012-08-03 16:46:58

回答

3

你试过添加视图导航视图

[self.navigationController.view addSubView:yourView]; 

的副视点只要你不其他子视图添加到您的导航控制器视图应该留在层次结构的顶部。您可能也必须稍微调整其位置。

+0

它的工作......谢谢 – 2012-08-03 17:04:34