原文連接 : 震驚!iOS 系統竟然自帶懸浮窗口調試工具 —— Jinkey 原創ios
原文做者 : Jinkeyobjective-c
英文原文:swift
http://ryanipete.com/blog/ios/swift/objective-c/uidebugginginformationoverlay/微信
我寫得這個並非翻譯而是用本身的理解從新表述這個功能,和原文內容有出入,有能力的能夠查看英文原文。app
咱們常常使用各類調試工具,或者開源庫來支持懸浮窗調試信息,但蘋果的私有方法就提供了 UIDebuggingInformationOverlay
。ide
在 AppDelegate
的 didFinishLaunchingWithOptions
方法中加入兩行代碼便可。工具
let overlayClass = NSClassFromString("UIDebuggingInformationOverlay") as? UIWindow.Type _ = overlayClass?.perform(NSSelectorFromString("prepareDebuggingOverlay"))
運行程序後,兩根手指點擊狀態欄便可調起這個調試的懸浮層。ui
window
的 View
嵌套關係View Hierarchyspa
這個功能能夠查看頁面層級的結構樹,點擊感嘆號進入詳情頁(點 cell
是沒反應的),會展現那個 view
的 frame
、 bounds
和其餘一些實例變量。翻譯
ViewController
的屬性VC Hierarchy
查看激活的 ViewController
的 childrenViewCotroller
的結構樹和相關屬性:
UIApplication
的成員屬性Ivar Explorer
Measure
一開始還挺懵逼不知道要怎麼用,後來發現手指是直接在懸浮窗的外部進行進行拖動就能夠了,若是你的組件被懸浮窗擋住了好像就沒辦法了。
選擇 Vertical ,手指在屏幕拖動便可顯示某個組件的高度;
選擇 Horizontal ,手指在屏幕拖動便可顯示某個組件的 寬度;
Spec Compare
從相冊讀取一個圖片(你必須在info.plist 先配置相冊權限NSPhotoLibraryUsageDescription)和當前界面對比。
點擊 Add -> 從相冊選擇一個界面截圖 -> 點擊剛添加的截圖 -> 手指在屏幕(懸浮窗外部)上下滑動 -> 便可動態改變截圖的透明度來對比截圖和當前界面的差別 -> 雙擊退出。
個人微信公衆號 jinkey-love
歡迎交流