我很想知道是否有人比較iPhone應用程序的加載時間性能與NIBs中佈置的視圖與完全以編程方式佈置的視圖(這裏是類似的question)的任何經驗。以編程方式創建視圖VS.筆尖
對於NIB中佈置的視圖,是否完全以編程方式佈置的視圖真的有什麼優勢?
我很想知道是否有人比較iPhone應用程序的加載時間性能與NIBs中佈置的視圖與完全以編程方式佈置的視圖(這裏是類似的question)的任何經驗。以編程方式創建視圖VS.筆尖
對於NIB中佈置的視圖,是否完全以編程方式佈置的視圖真的有什麼優勢?
做它的代碼有一些優勢:
隨着筆尖:
關於性能,你可以實際檢查this。
根據Apple的說法,XIB文件加載時間比以編程方式構建UI的時間更長。 在WWDC講座中看到了這一點。
如果性能是重要的,那麼在代碼中而不是在IB中構建UI。
最好給參考鏈接。 – Raptor 2013-04-23 06:22:02
如果你有參考WWDC視頻,請分享.. – iCoder4777 2013-04-23 06:26:25
我不記得是哪個視頻,但我可以找。這是來自上一次WWDC(2012)的挑戰。 – 2013-04-23 06:29:14
當我開始學習iOS編程時,我正在用xib文件構建UI。但是當我開發了一些項目時,我開始編寫代碼來實現我的UI。
有通過編程的方式構建UI一些好處:
首先,通過編寫代碼,你必須清楚你介意視圖層次結構,視圖層次結構,以有效地實現你的UI也很重要。其次,如果你的UI比較複雜,例如,用一些動畫或轉換,你將從編碼UI中受益頗多。即使有時您可能不會使用UIView來構建UI,您可以使用CALayer來完成某些無法通過xib文件構建的效果。此外,當您習慣以編程方式構建用戶界面時,您會喜歡它,因爲您只需在.m文件中編寫代碼並且無需擔心xib文件。
但是,如果你只是iOS編程的初學者,可以從xib文件開始。
(蘋果公司現在提供故事板,我還沒有了解它,你可以瞭解它找到,如果有任何新的東西。)
視圖層次結構在界面構建器中也是可見的。儘管你無法通過代碼完成任何事情,但完全忽略IB並不是正確的做法。爲什麼我想通過代碼構建整個視圖層次結構,這可以通過IB輕鬆完成。 – Rakesh 2013-04-23 06:47:29
實際上,通過代碼,我們可以實現用IB構建的所有東西。這只是關於哪種方法更有效。當我開始學習iOS編程時,我喜歡IB,IB非常容易學習和使用,但是當我開發更復雜的UI時,我認爲代碼可以更高效。 @Rakesh – 2013-04-23 07:05:40
當然,在代碼中,一切都可以在IB中完成。但只有更多的努力(不管你輸入的速度有多快:))。我想說的是最有效的方法不會是唯一的IB /唯一代碼方法。這將是兩者的結合。我試圖把我的想法變成一個答案。 @Phineas – Rakesh 2013-04-23 07:13:40
IMO兩者的混合將是正確的選擇。使用界面構建器來定義基本佈局(即xib不會隨時間變化很大)以及視圖的默認選項,其餘部分可以通過編程(特定的調整和效果)完成。這應該在一定程度上解決源控制和性能問題。
儘管一旦我們開始以編程方式創建視圖,我們仍會繼續這樣做,因爲每次都沒有意識到在Interface Builder中可以用更少的努力完成同樣的事情。畢竟,如果它是一個圖形用戶界面,我們正在建設,最好有一個視覺參考。
除性能外,如果您在團隊中工作並且必須通過git合併內容,則以編程方式創建的視圖更易於處理。 – Marc 2013-04-23 06:15:32