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

  • 原文鏈接 : 震驚!iOS 系統居然自帶懸浮窗口調試工具 —— Jinkey 原創

  • 原文作者 : Jinkey

1 背景

英文原文:

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

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

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

2 如何使用

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


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

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

3 能做什么

3.1 查看整個 windowView 嵌套關系

View Hierarchy

這個功能可以查看頁面層級的結構樹,點擊感嘆號進入詳情頁(點 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 歡迎交流

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395598.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395598.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395598.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

盲人編程_盲人如何編碼

盲人編程About one out of every 200 software developers is blind. We know this because Stack Overflow asked 64,000 developers about this a few months ago.每200名軟件開發人員中大約有1名是盲人。 我們之所以知道這一點,是因為幾個月前 Stack Overflow 向…

hadoop環境搭建筆記

一、配置Linux (1)cat /etc/networks (2)cat /etc/sysconfig/network (3)vi /etc/udev/rules.d/70-persistent-net.rules eth1 改為eth0 (4)vi /etc/sysconfig/network-scripts/ifc…

邊分治講解

前言: 邊分治和點分治一樣屬于樹分治的一部分,相比于點分治,邊分治對于與度數相關的問題有著很大的優勢,同時邊分治也是解決樹上最優化問題的一種重要的算法。 分治過程: 邊分治的分治過程與點分治類似,同樣…

準確性 敏感性 特異性_如何掌握類型特異性的藝術

準確性 敏感性 特異性Do more specific definitions result in less flexibility?更具體的定義會導致靈活性降低嗎? In this post I will try to avoid the debate about strong/static vs. weak/dynamic types (what more could possibly be said?), or even sc…

Pycharm社區版配置Django

Pycharm開發版(收費)自帶Django模板,社區版(免費)需要通過命令行創建Django項目。 通過pip安裝Django:pip install django2.0.2(版本號),可通過以下命令檢查是否安裝成功 在命令行下創建Django項目(項目存放在D:\PyCharm) 1.創建項目 進入D:\…

家里也是不知不覺就電腦有不能開啟了

一如既往的把電腦搬上去,我推測就是因為內存條金手指的接觸不好了,然后多次的強制關機讓我心疼,還有是花了30元裝系統還是有些不服氣,最后還是要回去弄好。 轉載于:https://www.cnblogs.com/bkchengzheng/p/5662222.html

oracle model 分組,【已解決】關于Oracle分組函數高級用法(按照N條分組并生成唯一號)...

prompt PL/SQL Developer import fileprompt Created on 2018年3月30日 byset feedback offset define offprompt Creating T_TEST_GROUP...create table T_TEST_GROUP(code VARCHAR2(100),supplier VARCHAR2(100),item_id VARCHAR2(100),num NUMBER,lot VARCHA…

用Mesos分布式架構進行工作

引言:2010年,一個旨在解決擴容問題的項目誕生——Apache Mesos,它在某種程度上對CPU、內存、磁盤資源進行抽象,從而允許整個數據中心如同單臺大服務器般運轉。無需虛擬機和操作系統,Mesos創造了一個單獨底層的集群為應…

angular和react_如何在Angular中驗證默認和自定義React形式

angular和reactby Luuk GruijsLuuk Gruijs著 如何在Angular中驗證默認和自定義React形式 (How to validate default and custom reactive forms in Angular) When presenting forms to your users, it’s considered very user-friendly to give them immediate feedback on w…

POJ 1502 MPI Maelstrom 最短路

最短路模板。 題意:從‘1’點發出一個信號到各個點,不同的點可以同時發出一個信號但到達目標的時間不同,問所有點接受到信號所耗費的最短時間為多少。 思路:迪杰斯特拉求出1點到各個點的最短路,遍歷一遍找到其中的最大…

調試dump文件

調試dump文件 1、設置好pdb文件和源代碼路徑 為了能正確分析Dump文件,我們必須要指定和程序一起出來的PDB文件,如果程序重新被編譯了一次,即使代碼沒有任何變化,之前的PDB文件我們不能再繼續使用。posted on 2018-12-28 17:50 mao…

不一樣的視角,程序員世界里的環保

摘要: 我們身邊有很多可以做的技術環保工作。比如說,在Linux下少用root用戶,SQL的時候,delete前先select,這樣,你就不會做出一些讓你后悔的事。不會讓你重頭來過,從而至少不會浪費電能。寫代碼的…

oracle查出連續5行,Oracle期末考試復習題2

復習題一、填空題:1. Oracle EnterpriseManager是一個基于 B/S的框架系統。2.Oracle數據庫的存儲結構分為物理結構和邏輯結構。3.在游標或者游標變量打開后還沒有進行第一次提取時,%found屬性為null。4. 在oracle中已c…

selinux會阻礙掛載嘛_為什么追求完美可能會阻礙您成為新手Web開發人員

selinux會阻礙掛載嘛by Rick West由里克韋斯特(Rick West) 為什么追求完美可能會阻礙您成為新手Web開發人員 (Why striving for perfection might be holding you back as a newbie web developer) I am a perfectionist. Or, at least, I like to think I am. Either way, I’…

MySQL優化的一些基礎

在Apache, PHP, mysql的體系架構中,MySQL對于性能的影響最大,也是關鍵的核心部分。對于Discuz!論壇程序也是如此,MySQL的設置是否合理優化,直接 影響到論壇的速度和承載量!同時,MySQL也是優化難度最大的一個…

oracle 會話 lock,相克軍_Oracle體系_隨堂筆記014-鎖 latch,lock

1、Oracle鎖類型鎖的作用latch鎖:chain,鏈LOCK鎖排他鎖(X)共享鎖(S)2、行級鎖:DML語句事務鎖TX鎖的結構事務鎖的加鎖和解鎖過程只有排他鎖不影響讀(CR塊)3、表級鎖:TM行級排他鎖(Row exclusive)RX鎖當我們進行DML時,會…

電線之間:采訪Microsoft Edge性能PM Nolan Lawson

by Vivian Cromwell通過維維安克倫威爾(Vivian Cromwell) 電線之間:采訪Microsoft Edge性能PM Nolan Lawson (Between the Wires: An interview with Microsoft Edge performance PM Nolan Lawson) I interviewed Nolan Lawson, Web Performance PM at Microsoft E…

swift菜鳥入門視頻教程-09-類和結構體

本人自己錄制的swift菜鳥入門,歡迎大家拍磚,有什么問題能夠在這里留言。主要內容:類和結構體對照 結構體和枚舉是值類型 類是引用類型 類和結構體的選擇 集合(collection)類型的賦值與復制行為視頻地址:百度…

oracle的集合操作符,[Oracle] Oracle的集合操作符

Oracle的集合操作包括: union , intersect , minus.[例子]假設有兩個表a,b如下:SQL> select * from a;COLA----------123SQL> select * from b;COLB----------345union : 得到兩個結果集的并集(不含重復值)SQL> select * from a2 union3 select * from b;COLA------…

鎖大全與 GDB調試

1.innodb_lock_monitor:打開鎖信息的方式 mysql> create table innodb_lock_monitor(id int) engineInnoDB; Query OK, 0 rows affected, 1 warning (2.29 sec) mysql> begin work; Query OK, 0 rows affected (0.00 sec) mysql> update t set val val 1…