ios – 如何在许多重叠的UIViews中清楚地看到特定的视图

当视图控制器(VC)具有大量视图和子视图时,修改子视图变得非常困难,因为我甚至无法完全看到它(它隐藏在其他子视图后面).例如,请查看我的一个VC的当前状态:

我看不到突出显示的“祝贺 – UILabel”或其UIView.

有没有办法可以清楚地看到特定的视图(可能在所有其他视图的顶部)?

通常我将UIView拖放到不同的虚拟空白VC上,完全在该VC上设计视图并具有所有约束,最后将其拖放回我的实际VC.这大部分时间都适用,但对我来说似乎是一种低效的方法.
我观察到在iOS6中看到重叠的视图比较容易,但在iOS7中非常困难.我缺少iOS7 Interface Builder中的任何功能吗?谢谢你宝贵的时间.

更新:Spark Inspector会帮助我吗?我是开发的新手,所以不要浪费我的时间尝试和理解新的插件,如果它不能帮助我实现我想要的.谢谢.

最佳答案 这被广泛认为是Xcode新故事板功能的弱点之一.它们非常适合需要大量简单控制器的应用程序,但是当接口变得复杂时,它们变得难以使用.大多数有经验的开发人员在某些地方使用Storyboard,在其他地方使用单独的控制器XIB,具体取决于他们正在构建的内容.

以下是解决问题的方法:

步骤1.将View Controller从Storyboard中分解为它自己的XIB

>从“文件”菜单中,选择“新建文件”,然后选择“空XIB文件”(从“用户界面”部分).将其命名为“YourExactVCClassName.xib”.
>转到您的故事板.复制View Controller的整个视图,然后将其删除.
>将View Controller粘贴到新的XIB中.将“文件所有者”的类更改为您的视图控制器,并通过从视图中将插座绘制到文件所有者来设置它的“视图”属性.

When your app runs, it will try to instantiate the view controller
from your storyboard. When it realizes there’s no view in the
storyboard for that controller, it will automatically find the file
MyViewController.xib and load it from there.

步骤2.将主视图的内容组织到有意义的分离视图中.

>在上面的示例中,看起来您对游戏的不同状态(游戏结束,高分等)有不同的视图.从主视图中取出每个视图并将其删除.将控制器放在自己的XIB文件中,只需将视图拖到控制器周围的空白处即可.您拖出的每个视图都会成为XIB文件中的顶级对象,您可以轻松地进行设计和查看.
您不再需要使用iPhone-5大小的工作空间.
>为每个独立的顶级视图创建IBOutlet,以便您可以在控制器中引用它们.
>在viewDidLoad中,以编程方式将每个单独的视图添加到主视图中.请注意,您可能希望设置其框架,使其中一些不可见,等等.您必须编写更多代码,但对于易于维护的XIB而言,这通常是值得的.

点赞