本文作者 Jinkey(微信公眾號 jinkey-love,官網(wǎng) https://jinkey.ai)
原文鏈接 https://jinkey.ai/post/tech/mac-ren-yi-pythonhuan-jing-an-zhuang-caffe-de-zhong-ji-jiao-cheng
文章允許非篡改署名轉(zhuǎn)載,刪除或修改本段版權(quán)信息轉(zhuǎn)載的诈豌,視為侵犯知識產(chǎn)權(quán),我們保留追求您法律責(zé)任的權(quán)利抒和,特此聲明矫渔!
1 背景
英文原文:
http://ryanipete.com/blog/ios/swift/objective-c/uidebugginginformationoverlay/
我寫得這個(gè)并不是翻譯而是用自己的理解重新表述這個(gè)功能,和原文內(nèi)容有出入摧莽,有能力的可以查看英文原文
我們經(jīng)常使用各種調(diào)試工具庙洼,或者開源庫來支持懸浮窗調(diào)試信息,但蘋果的私有方法就提供了UIDebuggingInformationOverlay镊辕。
2 如何使用
在 AppDelegate 的 didFinishLaunchingWithOptions 方法中加入兩行代碼即可油够。
let overlayClass = NSClassFromString("UIDebuggingInformationOverlay") as? UIWindow.Type
_ = overlayClass?.perform(NSSelectorFromString("prepareDebuggingOverlay"))
運(yùn)行程序后,兩根手指點(diǎn)擊狀態(tài)欄即可調(diào)起這個(gè)調(diào)試的懸浮層
3 能做什么
3.1 查看整個(gè) window 的 View嵌套關(guān)系
View Hierarchy
這個(gè)功能可以查看頁面層級的結(jié)構(gòu)樹丑蛤,點(diǎn)擊感嘆號進(jìn)入詳情頁(點(diǎn) cell 是沒反應(yīng)的)叠聋,會(huì)展示那個(gè) view 的 frame撕阎、bounds 和其他一些實(shí)例變量
3.2 查看當(dāng)前 ViewController 的屬性
VC Hierarchy
查看激活的 ViewController 的 childrenViewCotroller 的結(jié)構(gòu)樹和相關(guān)屬性
3.3 查看 UIApplication 的成員屬性
Ivar Explorer
3.4 測量組件大小
Measure
一開始還挺懵逼不知道要怎么用受裹,后來發(fā)現(xiàn)手指是直接在懸浮窗的外部進(jìn)行進(jìn)行拖動(dòng)就可以了,如果你的組件被懸浮窗擋住了好像就沒辦法了。
選擇 Vertical 棉饶,手指在屏幕拖動(dòng)即可顯示某個(gè)組件的高度厦章;
選擇 Horizontal ,手指在屏幕拖動(dòng)即可顯示某個(gè)組件的 寬度照藻;
3.5 效果對比
Spec Compare
從相冊讀取一個(gè)圖片(你必須在info.plist 先配置相冊權(quán)限NSPhotoLibraryUsageDescription)和當(dāng)前界面對比袜啃。
點(diǎn)擊 Add -> 從相冊選擇一個(gè)界面截圖 -> 點(diǎn)擊剛添加的截圖 -> 手指在屏幕(懸浮窗外部)上下滑動(dòng) -> 即可動(dòng)態(tài)改變截圖的透明度來對比截圖和當(dāng)前界面的差異 -> 雙擊退出。
我的微信公眾號 jinkey-love 歡迎交流