iOS開發,Reveal的使用

來源:互聯網
上載者:User

iOS開發,Reveal的使用

故事的背景是這樣的。

王二最近換了一個新老闆,產品團隊是新的,測試團隊是新的,只有他一個人乾著iOS的開發工作,前有老闆催促項目,後有測試堵截bug,好苦逼啊。。。本來,特意為產品給的設計圖會是這樣的

但實際上,產品給的設計圖是這樣的:

果然,理想很豐滿,現實很骨感。苦逼的王二同學跑去問產品:“UI元素之間的尺寸怎麼確定?”產品說:“你定吧,看著和原型圖一樣就行。”呵呵呵呵呵,這種回答和“我要做一張圖。”“什麼圖?”“使用者一看就想買的那種圖。”有什麼區別?

不過這點事情難不倒王二,很快,王二就把ui部分完成了,交給產品一看,產品看了三秒後:“哎,你這個輸入框的位置往上3個像素好不好?”“按鈕可不可以小几個像素?”。。。。。。王二按照產品的要求修改了下,又拿去給產品看,產品扒拉扒拉說了一堆像素上的事。王二崩潰了,拉著產品在旁邊,每改一步,就運行一次程式,給產品看一下效果。就這樣,改代碼——運行——顯示效果——產品扒拉扒拉——改代碼——運行——顯示效果——產品扒拉扒拉。。。。

王二瘋了。。。。。

王二給我講了他的遭遇後,我問他:你知不知道一個能即時修改ui尺寸並顯示的app?

王二:。。。。。。

好吧,我來告訴你。

這個軟體就是大名鼎鼎的Reveal,http://revealapp.com/download/

首先下載試用版的(這個軟體建議花錢買一下,物超所值啊有木有),安裝。嗯,就是這個樣子的

安裝完後,就該配置了

1、開啟命令視窗,在根目錄下建立一個.lldbinit檔案。輸入下列命令,後斷行符號

 

vim ~/.lldbinit
2、斷行符號後,輸入下列代碼:

 

 

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*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];
以上是四句命令,命令的意思是,給lldb設定了4個別名,這四個別名的意義是:

 

reveal_load_sim:模擬器載入reveal時調用的動態連結程式庫

reveal_load_dev:真機載入reveal時調用的動態連結程式庫

reveal_start:啟動reveal的調試功能

reveal_stop:關閉reveal的調試功能

在輸入完這些命令後,輸入以下命令,按一下斷行符號就儲存並退出編輯模式了

 

:wq


 

3、在工程中配置reveal連結到模擬器

開啟工程後,在appdeleget中的didfinished:方法中打下斷點,並按編輯斷點:

 

打完斷點後,就可以選擇模擬器運行工程了,當工程跑起來後,開啟reveal,點擊左上方的工程選擇,會看到我們的工程。

選擇我們的app的工程,就能在reveal中看到我們的ui布局了。

左邊是幹嘛的我就不說了,中間是當前頁面的ui,右邊是ui元素的相關尺寸、位置資訊。在右邊對應的框中可以修改相關數值並即時顯示。

在Xcode中也提供了這種即時查看ui的功能,但是沒法動態即時修改所以還是用reveal比較方便一點,而且,在修改了某個頁面的元素尺寸後,在模擬器上計入下一個頁面,回到reveal上之後重新連


reveal還可以在真機調試中連結真機,在編輯斷點時要修改為相應的指令。並且將reveal的動態連結程式庫一併添加進工程中:

1、點擊revel菜單的“help——》show reveal library in finder”在finder中尋找reveal的動態連結程式庫:libReveal.dylib,並將其拖入工程。

2、調整libReveal.dylib的引用方式,這裡我們只需要將libReveal.dylib檔案拷貝到Sandbox中,但是我們在引入libReveal.dylib的時候Xcode預設是以Link Binary With Libraries的方式的,實際上應該是Copy Bundle Resources,所以應該先將libReveal.dylib從Link Binary With Libraries中移除掉,然後在Copy Bundle Resources中添加。

3、修改斷點處的指令為reveal_load_dev.

 

reveal還可以串連破解版的蘋果裝置,來查看其他家的appUI結構,這個方法我沒有用過,大家可以去找找網上的資料。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.