在 Xcode 里,“Debug View Hierarchy” 是一个非常有用的调试工具,用来查看app 当前界面的视图层级(UIView 或 SwiftUI 的视图),可以直观地看到布局、约束问题以及隐藏的视图。
调试步骤
1、运行应用
首先在 Xcode 中选择目标设备(模拟器或真机)。
点击运行按钮(或快捷键 Cmd + R)启动应用。
2、进入 Debug Area
确保可以看到 Xcode 的调试区(Debug Area),默认是打开的。

如果没有显示,可以在菜单栏选择 View > Debug Area > Show Debug Area。
3、打开 Debug View Hierarchy
方法一:点击调试工具栏中的三维立方体按钮(位于 Debug 区工具条,鼠标悬停会显示 “Debug View Hierarchy”)。

方法二:菜单栏选择 Debug > View Debugging > Capture View Hierarchy。
4、等待加载
Xcode 会暂停应用,并捕获当前界面的视图层级。
稍等几秒,可以看到一个 3D 样式的可旋转界面,左侧显示视图层级树,右侧可以查看属性和约束。

使用 Debug View Hierarchy 的技巧
旋转视图:用鼠标拖动视图,可以从 3D 角度查看视图堆叠。
选择视图:点击某个视图,右侧会显示它的 frame、constraints、alpha、hidden 等属性。
查看约束冲突:有冲突的约束会标红。
隐藏/显示子视图:在左侧层级树中勾选/取消勾选视图。
快速定位问题:如果按钮点击无效或视图被遮挡,可以用它确认哪个视图覆盖了目标视图。
使用流程
左侧层级树显示对应视图,点击层级树时,右侧会高亮对应视图。

右侧视图中,右击某一视图显示一组菜单选项。

菜单选项:
1、Print Description of LottieView
在 Xcode 调试控制台打印该视图的描述信息。
内容通常类似于 [类名: 内存地址; frame = (x, y, width, height); layer = …],
可以用来确认它的类型、内存地址和基本属性。
注意:在实际测试中发现,右侧视图中的这一选项没有筛选功能,点击这个选项后无法输出描述信息。而左侧层级树中会根据层级的这一选项可以输出信息。如果该层级不能输出描述信息,则无法点击。

推荐点击左侧输出按钮输出视图的描述信息。
2、Reveal in Debug Navigator
在调试导航栏 (Debug Navigator) 中定位到该视图对应的对象。
方便查看它的对象关系、内存引用等。

3、Focus on LottieView
将视图层级树聚焦到这个视图,只显示它自己和子视图。
方便专注分析这个控件,而不用在复杂层级里翻来翻去。
右上角有按钮可以返回全局视图。
4、Show Constraints
显示这个视图相关的 Auto Layout 约束。
在 3D 视图里会画出蓝色/橙色的连线,检查约束是否正确。
对排查布局问题(错位、重叠、冲突)非常有用。

也可以点击视图底部的工具栏切换。
5、Hide Views in Front
临时隐藏在这个视图前面、可能遮挡它的视图。
用来查看被遮住的控件。
仅影响调试显示,不会改动真实 UI。
6、Hide Views Behind
临时隐藏在这个视图后面、被它遮住的视图。
方便看清该视图。
同样只是调试显示效果。

隐藏视图按钮也可以在工具栏中切换。
注意事项
Debug View Hierarchy 会暂停应用,所以不要在敏感操作时使用(例如正在处理网络请求)。
SwiftUI 的层级有时会被 UIKit 包装在 UIHostingController 中,可能显示的结构比实际代码复杂。
iOS 18 模拟器或真机上可能会稍慢,尤其是视图复杂时。