2010-06-11 21 views
2

我是新來的iOS平臺。我不清楚界面構建器的用途。它看起來像我可以完全避免使用它,只是寫在目標c中的所有代碼。我對嗎? IB能做什麼,但obj-c不能?iPhone SDK開發obj-C與界面生成器

這讓我想起了Visual Basic 6

+1

您是否找到了可接受的答案?請將其標記爲已接受。 – JoePasq 2010-07-06 18:26:35

回答

4

您可以絕對編寫所有的代碼而沒有使用Interface Builder。但是,如果你學會使用它,IB可以讓你的生活變得更容易。

2

可避免使用它,以同樣的方式,你能避免使用陣列和剛剛創建噸命名爲thing1thing2thing3等變量,也能避免使用功能通過複製和粘貼內聯的內容。換句話說:你不必使用它,但你通常會想要。

Interface Builder與Visual Basic不同,因爲它實際上是真正有用的工具,真正的大公司工作的程序員實際上是在構建他們的應用程序。

+0

代碼可移植性如何?如果我想與同事分享某些內容,該怎麼辦?我不能只給他發送xib文件嗎?我可以,如果我在ObjC中編寫所有內容 – Amy 2010-06-11 22:13:18

+1

xib文件是平面文件,並且可以進行版本控制。沒有理由不能共享xib文件。 – 2010-06-11 23:05:05

2

沒有。界面生成器的存在使您的生活更輕鬆,但您不必使用它。

+0

專業應用程序開發人員使用它嗎? – Amy 2010-06-11 22:14:17

+0

是的,如果沒有別的出發點。 – 2010-06-11 22:27:20

5

您還可以避免時完全寫在ARM彙編一切......

的InterfaceBuilder是有點像編譯器。這是你使用的工具,[希望]讓你的生活更輕鬆。它不生成代碼,它會生成一個描述特定接口文件的二進制歸檔文件。雖然您可以手動完成您可以在Interface Builder中執行的所有代碼,但這會浪費時間。

IB是絕對使用的專業人士。例如,所有Apple的應用程序都是用IB構建的。

至於與同事共享文件,這應該通過像Subversion,Perforce或Git這樣的修訂控制系統完成。雖然你可以通過電子郵件發送你的項目 - 包括xib文件 - 這是容易出錯的。最好使用源代碼管理工具來處理共享和更改跟蹤。

0

您可以在界面構建器中執行任何操作,您可以在代碼中同樣做得很好。如果你喜歡拖拉線條並構建諸如legos之類的程序,那麼界面構建器非常棒。如果你更喜歡文字,那就用代碼來做。

當我編寫代碼時,我傾向於打開一個終端。例如,我使用命令行subverison,即使它被構建到xcode中。我不會說一種方式或另一種更好,這只是你如何工作以及如何思考的問題。我幾乎從不使用界面構建器,但這是個人選擇。

您只能在代碼中執行一些操作,但這些操作相當少見,可以輕鬆與界面構建器配合使用。

接口構建器中還有一些更好的東西。它很少出現在我的面前,但任何時候,如果您有相當於一個帶有幾個不同控件的html表單,我認爲界面構建器是更好的選擇。我的程序中有很多表格,網頁和文本視圖,但填寫的表單不多。

1

您是否覺得Interface Builder是一個代碼生成器?

IB本身不生成代碼。它生成的NIB文件基本上是序列化的對象,在加載時解壓縮並實例化。

事實上,IB可以很容易地定位您的用戶界面,然後對其進行預先設置,而不必在沒有工作應用程序的情況下將全部內容全部寫出來,從而使其成爲必不可少的工具。

真正的問題通常是何時使用NIB文件以及何時以編程方式生成視圖。我最近看到的建議建議使用IB創建的NIB文件,只要視圖具有子視圖。

0

絕對是真的,一個nib文件沒有爲你做任何事,你不可能在代碼中完成!事實上,在特定情況下,在代碼中決定使用nib文件和創建這些實例可能是一個艱難的決定。儘管如此,至少有時候,一個nib文件可以更方便。

將Interface Builder視爲創建實例的另一種方式。一個nib文件包含(在你的想象中)類名(如UIWindow,UIView,UIButton等)以及如何實例化這些類並配置實例的說明(例如,使這個UIButton成爲Round Rect,標題爲「Tap Me !「)。

在某些時候,如果筆尖爲加載,則所有這些實例都實際創建。

因此,一個nib文件是一種很好的方式來配置一堆實例,圖形化(尤其有用,顯然,當它們是UIView子類時),並通過加載nib將它們一舉實現。如果你有一個大的對象圖 - 一個充滿按鈕,字段和東西的UIView - 在nib文件中進行設計和配置,使你的代碼更簡單,更易於維護。

此外,您可以反覆加載相同的筆尖來獲取新的實例。這就是爲什麼例如在筆尖設計一個UITableViewCell是一個很好的方法。

0

我試了一下IB。但嘗試一下後,我放棄了。如果您想要製作更多的自定義用戶界面,或者不要通過拖動控件拖動您的想法中斷,最好選擇objective-c代碼作爲第一個選項。順便說一句,用objective-c編寫UI並不像android那麼容易,因爲沒有佈局這樣的東西。