UIDebuggingInformationOverlay:iOS自带的调试悬浮窗

1 介绍

iOS系统自带了一个调试悬浮窗:UIDebuggingInformationOverlay,打开它可以看到各种一些调试信息。

截图如下:


image

2 如何使用

2.1 在 AppDelegate 的 didFinishLaunchingWithOptions 方法中加入两行代码即可。

Class debugCls = NSClassFromString(@"UIDebuggingInformationOverlay");
    [debugCls performSelector:NSSelectorFromString(@"prepareDebuggingOverlay")];

2.2 两种方法弹出调试框

  • 在需要调试的地方调用如下代码:
Class someClass = NSClassFromString(@"UIDebuggingInformationOverlay");
    id obj = [someClass performSelector:NSSelectorFromString(@"overlay")];
    [obj performSelector:NSSelectorFromString(@"toggleVisibility")];
  • 两根手指点击状态栏即可调起这个调试的悬浮层

3 能做什么

3.1 查看整个 window 的 View 嵌套关系

View Hierarchy
这个功能可以查看页面层级的结构树,点击感叹号进入详情页(点 cell 是没反应的),会展示那个 view 的 frame 、 bounds 和其他一些实例变量。


1602a419266d4031.png

3.2 查看当前 ViewController 的属性

VC Hierarchy
查看激活的 ViewController 的 childrenViewCotroller 的结构树和相关属性:

1602a41926469951.png

3.3 查看 UIApplication 的成员属性

Ivar Explorer

1602a419263b4a7b.png

3.4 测量组件大小

Measure
一开始还挺懵逼不知道要怎么用,后来发现手指是直接在悬浮窗的外部进行进行拖动就可以了,如果你的组件被悬浮窗挡住了好像就没办法了。

选择 Vertical ,手指在屏幕拖动即可显示某个组件的高度;

选择 Horizontal ,手指在屏幕拖动即可显示某个组件的 宽度;

1602a41959687700.png

3.5 效果对比

Spec Compare
从相册读取一个图片(你必须在info.plist 先配置相册权限NSPhotoLibraryUsageDescription)和当前界面对比。

点击 Add -> 从相册选择一个界面截图 -> 点击刚添加的截图 -> 手指在屏幕(悬浮窗外部)上下滑动 -> 即可动态改变截图的透明度来对比截图和当前界面的差异 -> 双击退出。

1602a4196114ebab.png
注:真机调试有效

参考:https://juejin.im/entry/5a277d4e518825585132915a

推荐阅读更多精彩内容