Reveal常用技巧(翻譯來自Reveal官網blog)

來源:互聯網
上載者:User

標籤:

翻譯來自官網:http://revealapp.com/blog/reveal-common-tips-cn.html以下基於Reveal 1.6。用於快速上手的內建應用程式

剛剛下載Reveal,啥都還沒配置呢,想先隨便玩玩看,怎麼辦?

我們花了不少時間開發這個複雜程度類似與實際情境的Sample應用──Soundstagram(音頻分享版的Instagram, ¯\_(ツ)_/¯),就是為了讓大家能最快速地上手Reveal,嘗試它的各種強大功能。

在 Help 功能表項目中,點擊 Inspect Sample App ,稍微等一會,Reveal會將Soundstagram應用拷貝到你的iPhone模擬器中,並自動開啟應用,自動連上開始Debug。一鍵搞定,你馬上就會看到活的Reveal了。

整合

關於具體如何將Reveal整合到App中的各種方法,請參考官方的中文文檔,當中有非(guo)常(yu)詳細的介紹。

這裡就囉嗦一句,對於專業的iOS工程師(可是連我們的設計師也毫不留情地採用了這種配置),我個人強烈推薦通過Xcode中加斷點的方式整合Reveal。一次配置,終生受益,無論到哪個項目,簡直太方便了,有木有。(小缺陷,當你禁用斷點時或者不用Xcode而用Appcode開發時,這個方式是不管用的。)

常用的快速鍵

這不是一個詳細全面的快速鍵列表,我只說點特別常用的。

快速鍵 作用
(在iPhone模擬器中按)? ? r 切換到Reveal並重新整理
? → 和 ? ← 在View的選擇曆史中,前進後退
? ? 滾動 3D視圖時增大/縮小每層視圖的間距
? 4 和 ? 5 在2D和3D視圖間切換
? r 重新整理(強迫症必備)

重度快速鍵使用者,請到 _Help -> Keyboard Shortcuts 中查看詳細列表。

自動布局的調試

自動布局(Auto Layout)已經越來越普遍的深入千家萬戶了,隨著iOS裝置解析度的多(sui)樣(pian)化,自動布局已慢慢成為了標準配置。

  1. 你可能經常看到控制台輸出類似這樣的內容,而不知何處下手:
Unable to simultaneously satisfy constraints.        Probably at least one of the constraints in the following list is one you don‘t want. Try this: (1) look at each constraint and try to figure out which you don‘t expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you‘re seeing NSAutoresizingMaskLayoutConstraints that you don‘t understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)     (        "<NSLayoutConstraint:0x7fc82d3e18a0 H:[UIView:0x7fc82aba1210(768)]>",        "<NSLayoutConstraint:0x7fc82d6369e0 H:[UIView:0x7fc82aba1210]-(0)-|   (Names: ‘|‘:UIView:0x7fc82d6b9f80 )>",        "<NSLayoutConstraint:0x7fc82d636a30 H:|-(0)-[UIView:0x7fc82aba1210]   (Names: ‘|‘:UIView:0x7fc82d6b9f80 )>",        "<NSLayoutConstraint:0x7fc82d3e7fd0 ‘UIView-Encapsulated-Layout-Width‘ H:[UIView:0x7fc82d6b9f80(50)]>"    )        Will attempt to recover by breaking constraint     <NSLayoutConstraint:0x7fc82d3e18a0 H:[UIView:0x7fc82aba1210(768)]>        Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.    The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.

 

 
  1. 除了我們在編碼時自己綁定到View上的約束條件(Constraints)之外,其實許多UIKit控制項還會被隱式地地設定上一些約束,而這些可能會帶來一些意外的布局結果。

也許曾經你需要使用LLDB來一點點調試Auto Layouts:

(lldb) po 0x7731880$0 = 124983424 <UIView: 0x7731880; frame = (90 -50; 80 100); layer = <CALayer: 0x7731450>>(lldb) po [0x7731880 superview]$2 = 0x07730fe0 <UIView: 0x7730fe0; frame = (32 128; 259 604); layer = <CALayer: 0x7731150>>(lldb) po [[0x7731880 superview] recursiveDescription]$3 = 0x07117ac0 <UIView: 0x7730fe0; frame = (32 128; 259 604); layer = <CALayer: 0x7731150>>   | <UIView: 0x7731880; frame = (90 -50; 80 100); layer = <CALayer: 0x7731450>>   | <UIView: 0x7731aa0; frame = (90 101; 80 100); layer = <CALayer: 0x7731c60>>

有了Reveal,這就方便多了。Reveal對視圖上的約束條件提供了相當豐富的檢視與即時修改功能,具體看下面這張圖,再自己摸索一下就好了。

a顯示/隱藏所有約束條件
b 查看關聯到此View的所有約束
c 可以直接在Canvas中選中某一約束
d 查看某一約束的具體資訊,可以即時修改constant屬性,立刻檢查效果
e 跳轉到某一約束的詳細屬性頁面
即時修改View屬性

Reveal不僅僅只是查看各種屬性的工具,也支援即時的修改一些屬性。如中的大部份屬性,你都可以即時的在模擬器中看到修改後的效果。這省去了過去總是要修改代碼,重新編譯運行這個漫長的反饋流程。在和設計師一起嘗試各種顯示效果時,這個功能特別高效。

Snapshot

Reveal還具有儲存現場的功能(快速鍵,? s),它將儲存應用的,所有View的層級結構和具體屬性資訊。換句話說,下次你開啟這個Snapshot檔案時,不需要啟動iOS應用,也可以看到所有的視圖資訊。

一些可能的使用情境:你可以在描述布局問題時,給其他團隊成員分享Snapshot;還可以對不同大小的模擬器分別儲存Snapshot,然後再做詳細地比較,找出問題所在。

 

Reveal常用技巧(翻譯來自Reveal官網blog)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.