1 背景
我們經常使用各種調試工具,或者開源庫來支持懸浮窗調試信息,但蘋果的私有方法就提供了UIDebuggingInformationOverlay。
圖片.png
2 如何使用
在 AppDelegate 的 didFinishLaunchingWithOptions 方法中加入兩行代碼即可。
let overlayClass = NSClassFromString("UIDebuggingInformationOverlay") as? UIWindow.Type
_ = overlayClass?.perform(NSSelectorFromString("prepareDebuggingOverlay"))
運行程序后,兩根手指點擊狀態欄即可調起這個調試的懸浮層
3 UIDebuggingInformationOverlay能做什么
3.1 查看整個 window 的 View嵌套關系
View Hierarchy
這個功能可以查看頁面層級的結構樹,點擊感嘆號進入詳情頁(點 cell 是沒反應的),會展示那個 view 的 frame、bounds 和其他一些實例變量
圖片.png
3.2 查看當前 ViewController 的屬性
VC Hierarchy
查看激活的 ViewController 的 childrenViewCotroller 的結構樹和相關屬性
圖片.png
3.3 查看 UIApplication 的成員屬性
Ivar Explorer
圖片.png
3.4 測量組件大小
Measure
一開始還挺懵逼不知道要怎么用,后來發現手指是直接在懸浮窗的外部進行進行拖動就可以了,如果你的組件被懸浮窗擋住了好像就沒辦法了。
選擇 Vertical ,手指在屏幕拖動即可顯示某個組件的高度;
選擇 Horizontal ,手指在屏幕拖動即可顯示某個組件的 寬度;
圖片.png
3.5 效果對比
Spec Compare
從相冊讀取一個圖片(你必須在info.plist 先配置相冊權限NSPhotoLibraryUsageDescription)和當前界面對比。
點擊 Add -> 從相冊選擇一個界面截圖 -> 點擊剛添加的截圖 -> 手指在屏幕(懸浮窗外部)上下滑動 -> 即可動態改變截圖的透明度來對比截圖和當前界面的差異 -> 雙擊退出。
參考1:UIDebuggingInformationOverlay
參考2:震驚!iOS 系統居然自帶懸浮窗口調試工具 —— Jinkey 原創