作用
Reveal是一個iOS程序界面調(diào)試工具根盒。使用Reveal,我們可以在iOS開發(fā)時動態(tài)地查看和修改應(yīng)用程序的界面。
對于動態(tài)或復(fù)雜的交互界面缓呛,手寫UI是不可避免的。通過Reveal抑进,我們可以方便地調(diào)試和修改應(yīng)用界面强经,免去了每次修改代碼后重新啟動的痛苦
Reveal簡介
Reveal (http://revealapp.com/) 是一個界面調(diào)試工具。使用Reveal寺渗,我們可以在iOS開發(fā)時動態(tài)地查看和修改應(yīng)用程序的界面匿情。它類似Chrome的“審查元素”功能,我們不但可以在運(yùn)行時看到iOS程序的界面層級關(guān)系信殊,還可以實(shí)時地修改程序界面炬称,不用重新運(yùn)行程序就可以看到修改之后的效果
在使用時,我們將Reveal連接上模擬器或真機(jī)上正在運(yùn)行的iOS程序涡拘,然后就可以查看和調(diào)試iOS程序的界面
Reveal的使用
- Reveal官方介紹了好幾種辦法使Reveal連接模擬器玲躯,都需要修改工程文件。但如果修改了工程文件鳄乏,就需要參與項(xiàng)目開發(fā)的所有人都裝有Reveal跷车,這其實(shí)是相當(dāng)不友好的。本節(jié)要介紹一種不修改任何工程文件的辦法橱野,在實(shí)際使用中朽缴,這種辦法最簡單方便。該方法的步驟如下
1.首先打開Terminal水援,輸入 vim ~/.lldbinit 創(chuàng)建一個名為.lldbinit的文件密强,然后將如下內(nèi)容輸入到該文件中:
command alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2);
command alias reveal_load_dev expr (void*)dlopen([(NSString*)
command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);
command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];
該步驟其實(shí)是為lldb設(shè)置了4個別名,為了后續(xù)方便操作蜗元,這4個別名意義如下:
1.reveal_load_sim 為模擬器加載reveal調(diào)試用的動態(tài)鏈接庫
2.reveal_load_dev 為真機(jī)加載reveal調(diào)試用的動態(tài)鏈接庫
3.reveal_start 啟動reveal調(diào)試功能
4.reveal_stop 結(jié)束reveal調(diào)試功能接下來或渤,我們在AppDelegate類的 application: didFinishLaunchingWithOptions:
方法中,作如下3步操作(如下圖所示):
下面詳細(xì)介紹請點(diǎn)擊鏈接