【IOS】震惊!ios居然自带悬浮窗调试工具

news/2024/11/18 0:16:55/

我们经常使用各种调试工具,或者开源库来支持悬浮窗调试信息,但苹果的私有方法就提供了UIDebuggingInformationOverlay。

系统要求: iOS10 经测试 iOS11不可用

使用方法:

AppDelegatedidFinishLaunchingWithOptions 方法中加入两行代码即可。

#if DEBUG#pragma clang diagnostic ignored "-Warc-performSelector-leaks"id overlayClass = NSClassFromString(@"UIDebuggingInformationOverlay");[overlayClass performSelector:NSSelectorFromString(@"prepareDebuggingOverlay")];#endif

调用:

运行后,用两个手指头在状态栏上同时点击下就可以显示出这个调试的悬浮层。


可以看到以上几个选项:

  • View Hierarchy (查看View的层级关系)
  • VC Hierarchy 查看ViewController层级关系)
  • Ivar Explorer(查看UIApplication 的成员属性)
  • Measure (测量View的尺寸)
  • Spec Compare (对比设计图)
  • System Coloer Audit (系统颜色审计)

View Hierarchy

进入到这个页面后,可以看见整个view的层级结构。悬浮窗右上角有个Inspect,点击这个可以高亮显示当前选择的View。如图所示:

7710B96C-6161-4453-808B-AA049885F624.png

当前选中的是 SettingSwitchItemView。
我们在页面上选择一个swicth按钮,这时会定位到该view的条目,如图所示:

4A7275E1-26C2-4A80-B4CF-6F511BE7C5C3.png

我们点击右侧的“!”图标,进入到swicth的详情页面,这里展示了view的详西信息,并且可以修改一些属性,比如我们修改这个button的透明度,如图所示:

E62D4DF3-D935-4116-BA66-5692547339FE.png

VC Hierarchy

我们回到悬浮窗的主界面,进入到VC Hierarchy界面看看。
A3CB9BC0-29E1-408C-8E2C-C53C3E7C8C73.png

Ivar Explorer

接下来我们去Ivar Explorer页面看一下。进到页面后,对里面的一些值不是很熟悉,不知道是哪里的一些值,不过里面,看见了我们熟悉的 AppDelegate 。
1CD86F5A-54AC-4508-99CD-0E7ECF2C47BD.png

点击去看看,有我们更加熟悉的值了,是Appdelegate里我们的一些值。

A5400178-6742-4EE9-A304-7A37EBE53CC7.png

Measure

笔者认为最实用的就是这个测量功能了,它可以帮助我们测量view的大小。进入这个页面是这个样子的


AD56EB68-2F6C-48E4-94BE-486498946DA5.png

上面有三个tab选项,None, Vertical, Horizontal,选择Vertical可以测量垂直方向上的距离或者view的高度,选择Horizontal是在水平方向上进行测量。在悬浮窗上还有一个 View Mode的选项开关,开启时,会以View为单位,来测量view的大小宽高;关闭时是以非空白像素为起始端和结束端进行更宽泛的测量。如图所示:


F58DD36D-15A7-4385-AD99-DA7611AE394E.png

例如:测量switch的高度

19F53376-D326-443B-8075-12EE268F763F.png

关闭ViewMode后的测量

1EB6FE94-0218-41E1-A818-2C26830DA7B9.png

Spec Compare

这个功能是比较spec图片和我们辛苦完成的view的,也比较实用,直接可以看出我们我们扣代码出来的界面和UI给出的设计图的差别。进入到这个页面后,点击右上角的Add进入相册把UI设计师给出的设计图添加进来,如图:


然后点击一下图片,这时会把UI设计图覆盖在界面上,然后,我们用手指从上到下滑动,就可以让UI设计图变得透明, 双击退出。如图:

System Coloer Audit

这个还不知道做什么的,点进去会是空白的列表.


http://www.ppmy.cn/news/774573.html

相关文章

iOS中全局悬浮按钮,类似IPhone中的AssistiveTouch (可以替换为视频悬浮窗口)

前提:当时看到别人写过这个类似AssistiveTouch的demo,但是有问题,第一改变不了位置、第二切换页面后无法使用、第三运行时偶尔会崩溃。然后自己就去度娘、论坛中都查了一些资料,然后结合起来写了这么一个demo。 思路:…

悬浮窗管理

/*** 创建者 :赵鹏 时间:2018/10/16*/ public class FloatRoomViewManager {private static WindowManager.LayoutParams mLayoutParams;private static WindowManager mWindowManager;private static FloatRoomView mFloatView;public static Context mContext;public sta…

Android 悬浮窗、悬浮球开发

1、权限管理 直接看我另外一篇博客吧,传送门: https://my.oschina.net/u/1462828/blog/1933162 2、Base类BaseSuspend import android.content.Context; import android.graphics.PixelFormat; import android.os.Build; import android.view.Gravity…

Android 悬浮窗的使用(1)

悬浮窗功能基本代码: //创建悬浮窗的图片,这里当然也可以用自定义的View,这里之用了简单的图片var imageView ImageView(this)imageView.setImageResource(R.mipmap.ic_launcher)var layoutParams WindowManager.LayoutParams()var windowM…

悬浮窗

VC对话框隐藏运行 (四)悬浮窗 Windows的菜单一层一层的,有时操作起来不方便,就想自己写个工具直接调用。对迅雷的悬浮窗垂涎好久了,哈,正好趁这个机会搞一搞。在悬浮窗上用快捷菜单不是很方便吗? 在VC知识库中找到了…

在APP内实现顶层窗口,悬浮窗功能。

在做一个电台类的app时,需要一个按钮始终显示在最前端,查找了一些博客,都不尽如人意,选择了其中写的比较好的一篇进行了修改,最终满足了需求。 此方法使用的是系统弹窗,由于我这个项目的特殊性&#xff0c…

Android 悬浮窗

悬浮窗是一种比较常见的需求。例如把视频通话界面缩小成一个悬浮窗,然后用户可以在其他界面上处理事情。 本文给出一个简单的悬浮窗实现。可缩小activity和还原大小。可悬浮在其他activity上。使用TouchListener监听触摸事件,拖动悬浮窗。 本文链接 缩放方法 缩放activit…

ios居然自带悬浮窗调试工具

我们经常使用各种调试工具,或者开源库来支持悬浮窗调试信息,但苹果的私有方法就提供了UIDebuggingInformationOverlay。 系统要求: ios10,iOS11 目前在我自己的手机上测试是行不通的。如果英语不错的可以去看这篇,看完记得通知我…