Xcode调试工具Debug View Hierarchy
Xcode调试工具Debug View Hierarchy

Xcode调试工具Debug View Hierarchy

在 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 模拟器或真机上可能会稍慢,尤其是视图复杂时。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注