2013-04-23 69 views
3

我很想知道是否有人比較iPhone應用程序的加載時間性能與NIBs中佈置的視圖與完全以編程方式佈置的視圖(這裏是類似的question)的任何經驗。以編程方式創建視圖VS.筆尖

對於NIB中佈置的視圖,是否完全以編程方式佈置的視圖真的有什麼優勢?

+2

除性能外,如果您在團隊中工作並且必須通過git合併內容,則以編程方式創建的視圖更易於處理。 – Marc 2013-04-23 06:15:32

回答

5

做它的代碼有一些優勢:

  1. 更好的工作與幾個人。提交到存儲庫時解決衝突更容易。
  2. 您依賴於您在代碼中看到的內容,而不是隱藏在nib文件中的某些內容(您選擇某些不知道的麻煩選項)。你有:你看到的是你得到的。

隨着筆尖:

  1. 我會說這是更快地發展。
  2. 它的代碼不是很「污染」每一個關於你的界面的細節。
  3. 我也會保持對沒有很多經驗的人來說更容易。

關於性能,你可以實際檢查this

6

根據Apple的說法,XIB文件加載時間比以編程方式構建UI的時間更長。 在WWDC講座中看到了這一點。

如果性能是重要的,那麼在代碼中而不是在IB中構建UI。

+3

最好給參考鏈接。 – Raptor 2013-04-23 06:22:02

+0

如果你有參考WWDC視頻,請分享.. – iCoder4777 2013-04-23 06:26:25

+0

我不記得是哪個視頻,但我可以找。這是來自上一次WWDC(2012)的挑戰。 – 2013-04-23 06:29:14

2

當我開始學習iOS編程時,我正在用xib文件構建UI。但是當我開發了一些項目時,我開始編寫代碼來實現我的UI。

有通過編程的方式構建UI一些好處:

首先,通過編寫代碼,你必須清楚你介意視圖層次結構,視圖層次結構,以有效地實現你的UI也很重要。其次,如果你的UI比較複雜,例如,用一些動畫或轉換,你將從編碼UI中受益頗多。即使有時您可能不會使用UIView來構建UI,您可以使用CALayer來完成某些無法通過xib文件構建的效果。此外,當您習慣以編程方式構建用戶界面時,您會喜歡它,因爲您只需在.m文件中編寫代碼並且無需擔心xib文件。

但是,如果你只是iOS編程的初學者,可以從xib文件開始。

(蘋果公司現在提供故事板,我還沒有了解它,你可以瞭解它找到,如果有任何新的東西。)

+0

視圖層次結構在界面構建器中也是可見的。儘管你無法通過代碼完成任何事情,但完全忽略IB並不是正確的做法。爲什麼我想通過代碼構建整個視圖層次結構,這可以通過IB輕鬆完成。 – Rakesh 2013-04-23 06:47:29

+0

實際上,通過代碼,我們可以實現用IB構建的所有東西。這只是關於哪種方法更有效。當我開始學習iOS編程時,我喜歡IB,IB非常容易學習和使用,但是當我開發更復雜的UI時,我認爲代碼可以更高效。 @Rakesh – 2013-04-23 07:05:40

+0

當然,在代碼中,一切都可以在IB中完成。但只有更多的努力(不管你輸入的速度有多快:))。我想說的是最有效的方法不會是唯一的IB /唯一代碼方法。這將是兩者的結合。我試圖把我的想法變成一個答案。 @Phineas – Rakesh 2013-04-23 07:13:40

1

IMO兩者的混合將是正確的選擇。使用界面構建器來定義基本佈局(即xib不會隨時間變化很大)以及視圖的默認選項,其餘部分可以通過編程(特定的調整和效果)完成。這應該在一定程度上解決源控制和性能問題。

儘管一旦我們開始以編程方式創建視圖,我們仍會繼續這樣做,因爲每次都沒有意識到在Interface Builder中可以用更少的努力完成同樣的事情。畢竟,如果它是一個圖形用戶界面,我們正在建設,最好有一個視覺參考。