2013-07-30 116 views
0

所以我创建为iPhone游戏,我想在任何时候都加载一个透明的视图控制器,即上层建筑去我所有的其他视图控制器。这个透明的视图控制器会在每个视图的顶部显示诸如游戏时间,当前金钱等内容。我想这样做,以便时钟计时器的所有代码可以保存在一个文件中,不需要复制/粘贴到我的所有不同的OtherViewController.m文件中。我已经研究了一段时间了,但我似乎无法弄清楚如何没有挡住了背后的一个创建这个视图控制器,或者没有它被阻塞时,我转移到一个新的观点。欢迎任何有关如何做到这一点以及可能的替代解决方案的建议。谢谢!如何将透明视图控制器加载到所有其他视图控制器的顶端?

回答

0

你应该使用自定义容器控制器为此视图的基类视图控制器实验开始。该控制器在顶部具有透明视图,而内容视图控制器将显示在该透明视图下方。你可以在IB中用容器视图来做到这一点。从一个普通的UIViewController开始,并在顶部添加一个透明的UIView,并使用你想要的任何子视图。然后,添加一个容器视图,并使其成为整个屏幕的大小。在左边的场景列表中,您必须将容器视图向上移动,这是主视图子视图列表中的第一个视图(这会将透明视图置于顶部)。您可以将容器视图中包含的包含控制器嵌入到导航控制器中(关闭导航栏),然后从其中添加其他控制器。

enter image description here

enter image description here

我的彩色图像中的透明视窗的蓝色,所以你可以看到它 - 容器视图了它的下方延伸到状态栏。在您导航到不同的控制器时,它们将滑入透明视图下方,该视图将保持静止。

+0

这似乎对我来说,最好的解决办法。我试过了,我认为这会起作用!非常感谢您的详细解答! – user2635963

0

您可以添加视图控制器的根视图控制器的一个孩子,加上其观点,作为一个子视图。你需要做一些篡改hitTest,以确保接触传递到兄弟姐妹的意见。

0

您可能能够使用继承来构建所使用的所有其他控制器父视图控制器 - 如果你这样做,也许你并不需要覆盖整个可见区域的透视图,但你可以添加项目如时间/分/所需HUD - 和移动它们,这取决于查看你在身边要使用两个完全人为的例子,在游戏中的飞行部分,你可能想在屏幕仅覆盖天空上的所有信息。 ,但如果您在鸭子拍摄的游戏部分,信息应该显示在屏幕的底部,这样您就不会隐藏鸭子。

我会通过与吸入viewDidLoad:

相关问题