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

  • 原文做者 : Jinkeyobjective-c

1 背景

英文原文:swift

http://ryanipete.com/blog/ios/swift/objective-c/uidebugginginformationoverlay/微信

我寫得這個並非翻譯而是用本身的理解從新表述這個功能,和原文內容有出入,有能力的能夠查看英文原文。app

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

2 如何使用

AppDelegatedidFinishLaunchingWithOptions 方法中加入兩行代碼便可。工具

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

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

3 能作什麼

3.1 查看整個 windowView 嵌套關係

View Hierarchyspa

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

3.2 查看當前 ViewController 的屬性

VC Hierarchy

查看激活的 ViewControllerchildrenViewCotroller 的結構樹和相關屬性:

3.3 查看 UIApplication 的成員屬性

Ivar Explorer

3.4 測量組件大小

Measure

一開始還挺懵逼不知道要怎麼用,後來發現手指是直接在懸浮窗的外部進行進行拖動就能夠了,若是你的組件被懸浮窗擋住了好像就沒辦法了。

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

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

3.5 效果對比

Spec Compare

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

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

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

相關文章
相關標籤/搜索