震驚!iOS 系統竟然自帶懸浮窗口調試工具 —— Jinkey 原創

1 背景

英文原文:
ryanipete.com/blog/ios/sw…
我寫得這個並不是翻譯而是用本身的理解從新表述這個功能,和原文內容有出入,有能力的能夠查看英文原文.微信公衆號 jinkey-love 歡迎交流ios

咱們常用各類調試工具,或者開源庫來支持懸浮窗調試信息,但蘋果的私有方法就提供了UIDebuggingInformationOverlay。
objective-c

2 如何使用

在 AppDelegate 的 didFinishLaunchingWithOptions 方法中加入兩行代碼便可。swift

let overlayClass = NSClassFromString("UIDebuggingInformationOverlay") as? UIWindow.Type
_ = overlayClass?.perform(NSSelectorFromString("prepareDebuggingOverlay"))複製代碼

運行程序後,兩根手指點擊狀態欄便可調起這個調試的懸浮層微信

3 UIDebuggingInformationOverlay能作什麼

3.1 查看整個 window 的 View嵌套關係

View Hierarchyapp

這個功能能夠查看頁面層級的結構樹,點擊感嘆號進入詳情頁(點 cell 是沒反應的),會展現那個 view 的 frame、bounds 和其餘一些實例變量
ide

3.2 查看當前 ViewController 的屬性

VC Hierarchy工具

查看激活的 ViewController 的 childrenViewCotroller 的結構樹和相關屬性
ui

3.3 查看 UIApplication 的成員屬性

Ivar Explorerspa

3.4 測量組件大小

Measure翻譯

一開始還挺懵逼不知道要怎麼用,後來發現手指是直接在懸浮窗的外部進行進行拖動就能夠了,若是你的組件被懸浮窗擋住了好像就沒辦法了。
選擇 Vertical ,手指在屏幕拖動便可顯示某個組件的高度;
選擇 Horizontal ,手指在屏幕拖動便可顯示某個組件的 寬度;

3.5 效果對比

Spec Compare

從相冊讀取一個圖片(你必須在info.plist 先配置相冊權限NSPhotoLibraryUsageDescription)和當前界面對比。
點擊 Add -> 從相冊選擇一個界面截圖 -> 點擊剛添加的截圖 -> 手指在屏幕(懸浮窗外部)上下滑動 -> 便可動態改變截圖的透明度來對比截圖和當前界面的差別 -> 雙擊退出。

個人微信公衆號 jinkey-love 歡迎交流

相關文章
相關標籤/搜索