2009-06-15 57 views

回答

11

通常你想使用Interface Builder;有幾個原因,你爲什麼會想這樣做了編程接口:

  • 它是創建用戶界面,由於其簡單,並且你不能達到視覺上的優勢較爲接受的方式通過簡單地利用碼。
  • 它可以幫助您的應用程序符合iPhone Human Interface Guidelines,通過使用蘋果公司鼓勵開發人員遵循的標記等來保持iPhone應用程序的一致性和可用性。

儘管如此,主要原因編程接口有時在使用Interface Builder更有利的是需要創造幾次界面元素 - 例如,創建nUIImageView秒 - 基於不能是一個變量在Interface Builder中複製。編程接口支持這種靈活性,在這種情況下通常效率更高。請注意,NIB/XIB也會佔用內存,並且如果所有接口都放置在主要的NIB文件中,它不僅會增加應用程序的內存使用量(對於可能不需要立即需要的資源)但會增加加載時間。然而,這個問題的正常解決方法不是使用編程接口,而是將不同的接口元素組放在不同的NIB文件中,將立即需要的接口放置在主要的NIB文件中,當應用程序啓動時將其加載,以及其他NIB文件中的其他界面元素組,在需要時加載。

簡而言之,一般的做法是使用Interface Builder,除非需要創建可變數量的元素,而這些元素不易在Interface Builder中處理。

2

一個缺點是很容易錯過接線插座或操作,並且排除故障可能會很痛苦。兩個積極的方面是定位,對齊和錨定UI元素要容易得多,並且元素在手機旋轉時重繪自己(這是一個動畫過程,否則需要使用程序化元素來處理自己)。

2

說起自己,當我試圖學習如何爲iPhone開發時,我發現接口構建器非常呆板。你應該使用的工作流程對我來說依然沒有什麼意義。界面生成器比手寫代碼更快速,用於精美的界面佈局。

在您的UIViewControllers中以編程方式生成GUI的缺點是您已經模糊了MVC模式中視圖和控制器之間的區別。如果您可以將GUI生成保持爲loadView方法,那麼您仍然可以在生成信息的代碼和顯示信息的代碼之間保持良好的邊界。

簡而言之:我更喜歡通過在UIViewController子類中重寫loadView來生成GUI。

+0

我是新來的iOS開發,但不是MVC模式,我不知道爲什麼你不能保持獨立於ViewController的視圖,仍然不使用Interface Builder。我只需創建另一個類來生成視圖並在控制器的loadView方法中使用它。在這個類中,它並不真正考慮我將使用多少種方法,我仍然保持M-V-C邊界的強大。這聽起來不錯嗎? (我還沒有與Objc的經驗確定:) – 2011-06-19 18:41:53

-1

不要看使用該工具的NIB的代碼生成。但看看蘋果的說明。

注意:雖然可以在不使用nib文件的情況下創建Objective-C應用程序,但這樣做非常少見,不建議使用。根據您的應用程序,避免使用nib文件可能涉及覆蓋大量的框架行爲,以獲得與使用nib文件相同的結果。

1

爲什麼沒有人提到翻譯。我們在11個語言環境中有一個項目 - 這會給出一些筆尖*(#語言環境) - 這是不可接受的(對於10個UI項目,超過一百個筆尖)。

相關問題