iOS开发:如何在StoryBoard中找到头文件定义的UIView?
作为常年跟旧iOS项目打交道的老司机,太懂你在堆满控件的StoryBoard里找对应视图的崩溃感了!给你几个亲测高效的快捷方法,帮你快速定位:
从代码直接跳转定位
找到头文件里那个UIView的IBOutlet属性(比如@property (nonatomic, weak) IBOutlet UIView *customView;),按住Command键点击这个属性名,Xcode会直接跳转到StoryBoard里对应的控件,同时左侧的文档大纲也会自动高亮它的位置——哪怕它嵌套在N层容器视图里也能瞬间找到。如果没直接跳转,右键点击属性名,选择「Reveal in Document Outline」也能达到同样效果。用StoryBoard内置搜索精准查找
打开目标StoryBoard,按下Command + F调出搜索框,直接输入这个UIView的变量名或者自定义类名:如果是你自己定义的UIView子类,搜类名会直接筛选出所有该类的控件;如果是系统UIView,搜变量名更精准。搜索结果会高亮显示对应的控件,点击结果就能直接跳转到它的位置。通过Connections Inspector反向查找
要是上面的方法没生效,试试这个:先在头文件里确认好UIView的属性名,回到StoryBoard选中对应的ViewController或者父视图,打开右侧面板的「Connections Inspector」(那个箭头样式的图标),在「Outlets」列表里找到这个属性名,旁边会显示它关联的控件名称,点击这个名称就能直接定位到目标视图。极端情况:用调试工具兜底
如果StoryBoard结构实在太复杂,前面的方法都不管用,临时加一行代码在viewDidLoad里:NSLog(@"目标视图位置:%@", NSStringFromCGRect(self.customView.frame));运行App后拿到这个视图的frame信息,然后回到StoryBoard用「Debug View Hierarchy」(调试栏里的方块图标),运行时点击它就能看到所有视图的层级结构,找到对应frame的视图后,右键选择「Reveal in StoryBoard」就能精准定位了。
内容的提问来源于stack exchange,提问作者Siddharth

