[Jinkey 原創(chuàng)]震驚!iOS 系統(tǒng)居然自帶懸浮窗口調(diào)試工具

1 背景

英文原文:
http://ryanipete.com/blog/ios/swift/objective-c/uidebugginginformationoverlay/

我寫得這個并不是翻譯而是用自己的理解重新表述這個功能,和原文內(nèi)容有出入,有能力的可以查看英文原文。

我們經(jīng)常使用各種調(diào)試工具,或者開源庫來支持懸浮窗調(diào)試信息,但蘋果的私有方法就提供了 UIDebuggingInformationOverlay

2 如何使用

AppDelegatedidFinishLaunchingWithOptions 方法中加入兩行代碼即可。

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

運(yùn)行程序后,兩根手指點(diǎn)擊狀態(tài)欄即可調(diào)起這個調(diào)試的懸浮層。

3 能做什么

3.1 查看整個 windowView 嵌套關(guān)系

View Hierarchy

這個功能可以查看頁面層級的結(jié)構(gòu)樹,點(diǎn)擊感嘆號進(jìn)入詳情頁(點(diǎn) cell 是沒反應(yīng)的),會展示那個 viewframe 、 bounds 和其他一些實例變量。

3.2 查看當(dāng)前 ViewController 的屬性

VC Hierarchy

查看激活的 ViewControllerchildrenViewCotroller 的結(jié)構(gòu)樹和相關(guān)屬性:

3.3 查看 UIApplication 的成員屬性

Ivar Explorer

3.4 測量組件大小

Measure

一開始還挺懵逼不知道要怎么用,后來發(fā)現(xiàn)手指是直接在懸浮窗的外部進(jìn)行進(jìn)行拖動就可以了,如果你的組件被懸浮窗擋住了好像就沒辦法了。

選擇 Vertical ,手指在屏幕拖動即可顯示某個組件的高度;

選擇 Horizontal ,手指在屏幕拖動即可顯示某個組件的 寬度;

3.5 效果對比

Spec Compare

從相冊讀取一個圖片(你必須在info.plist 先配置相冊權(quán)限NSPhotoLibraryUsageDescription)和當(dāng)前界面對比。

點(diǎn)擊 Add -> 從相冊選擇一個界面截圖 -> 點(diǎn)擊剛添加的截圖 -> 手指在屏幕(懸浮窗外部)上下滑動 -> 即可動態(tài)改變截圖的透明度來對比截圖和當(dāng)前界面的差異 -> 雙擊退出。

我的微信公眾號 jinkey-love 歡迎交流

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容