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

news/2024/11/18 2:36:31/

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

系统要求:  ios10+,iOS11 目前在我自己的手机上测试是行不通的。如果英语不错的可以去看这篇,看完记得通知我一下噢。

https://www.raywenderlich.com/177890/swizzling-in-ios-11-with-uidebugginginformationoverlay

使用方法:

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

#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。如图所示:


当前选中的是 SettingSwitchItemView。

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


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

VC Hierarchy

我们回到悬浮窗的主界面,进入到VC Hierarchy界面看看。

Ivar Explorer

接下来我们去Ivar Explorer页面看一下。进到页面后,对里面的一些值不是很熟悉,不知道是哪里的一些值,不过里面,看见了我们熟悉的 AppDelegate 。

1CD86F5A-54AC-4508-99CD-0E7ECF2C47BD.png

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

Measure

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

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

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

例如:测量switch的高度

关闭ViewMode后的测量

Spec Compare

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

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

System Coloer Audit

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






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

相关文章

Android桌面悬浮窗

这是一篇Android悬浮窗的介绍,能够实现例如360,QQ管家那样的悬浮窗效果。后台运行了一个服务,用于控制在运行非桌面app情况下隐藏悬浮窗。 下面先上Demo截图: 上图就是所实现的简单悬浮窗示例,当然可以根据项目…

Android可移动的悬浮窗

1.悬浮窗权限申请: if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.M) {if (!Settings.canDrawOverlays(getApplicationContext())) {Intent intent new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);startActivityForResult(…

如何在html添加悬浮页面,如何设置悬浮窗口?

可以用FlashMX来制作,下面是教程 用FlashMX制作拖动悬浮窗口 在课件制作过程中,有些需要重点突出的知识点要在单独的画面中显示,并且要求可以拖动。这就是我们平时所说的可以拖动的悬浮窗口。笔者以Flash MX为课件制作平台,将实现…

Mac OS 悬浮窗口,并且可以保持在全屏的其他应用上。

最简单的一个方法NSPanel项目下载地址 #import <Cocoa/Cocoa.h>NS_ASSUME_NONNULL_BEGINinterface myWindow : NSPanelendNS_ASSUME_NONNULL_END #import "myWindow.h"implementation myWindow- (instancetype)initWithContentRect:(NSRect)contentRectstyle…

iOS关于悬浮窗口的实现

由于项目的需要&#xff0c;需要实现的一个悬浮窗口 &#xff0c;显示在整个应用界面。 思路一 另创建一个类 继承 uiwindow 设置成为 alter &#xff0c;使用 makeKeyAndVisible 显示在界面上&#xff0c; 这种方法效果在竖屏上面效果很好&#xff0c;开始的时候感觉 很不错…

ios添加全局悬浮按钮_iOS全局的悬浮窗

1.这个悬浮窗的持有者应该是比较稳定的&#xff0c;一般写在AppDelegate里面&#xff0c;KDEAISellFloatWindow继承于UIWindow&#xff0c; 关于UIWindow&#xff0c;为了保证始终悬浮在最上层&#xff0c;可以给windowLevel 设置成UIWindowLevelAlert UIWindowLevelAlert >…

IOS 应用悬浮窗

需求 在一个app应用的最顶部添加一个悬浮窗&#xff0c;就像ios系统AssistiveTouch 可以左右滑动&#xff0c;但是最终会停在左边或右边。 实现思路 在应用的视图的最顶层添加一个UIWindow&#xff0c;用这个UIWindow 充当悬浮窗&#xff0c;给UIWindow添加移动的手势监听&a…

android仿苹果悬浮窗(自动停靠、随手指滑动、返回主屏幕)

说明&#xff1a;本人写博客一来是为了方便日后查看项目&#xff0c;二来是希望能够和广大的程序猿相互交流学习&#xff0c;文章布局简单&#xff0c;如有嫌弃&#xff0c;请绕行&#xff0c;如有错误&#xff0c;请指出&#xff0c;谢谢。 实验环境&#xff1a;安卓6.0 魅族…