2013-02-15 37 views
0

我想知道是否使用.xib文件繪製/與用戶界面交互是一種好的做法。使用xib文件有什麼好處?如果我不使用它,只需初始化一個viewcontroller並在硬代碼上繪製/定位對象是一種最佳實踐?有什麼好處?我正在考慮它,因爲有一些配置無法在.xib中完成,只能用硬代碼完成。製作一個通用的應用程序,國際化是更好的使用.xib還是可以在硬代碼中完成所有工作?謝謝。是否最好使用.xib文件?

回答

2

我不認爲這是「最佳實踐」的問題。如果你有一個相當複雜的佈局,其中有許多子視圖需要放置在彼此之間的特定關係中,那麼在xib或故事板中做起來要容易得多。對於通用應用程序,您通常會爲iPad和iPhone版本分開安裝xib或故事板。就國際化而言,與此相關的許多問題都可以通過佈局約束來處理(例如自動更改標籤的大小),並且在WWDC 2012的演講「通過示例進行自動佈局」中對此進行了討論。

+0

所以你認爲使用xib幫助更多,然後沒有?我知道它的佈局簡單。我認爲最好的做法是因爲應該規劃一個普遍的國際化項目。而一些屬性不能在xib文件中設置,所以我需要設置其他屬性的硬代碼(視圖控制器)..它不會讓應用程序更困惑?這就是爲什麼我試圖創建我的perspect使用或不使用xib文件不渴望面對許多問題。 – 2013-02-15 17:30:39

+0

@JuanMunhoesJunior,很難說不知道你的項目的具體細節。我認爲將xib或storyboard與代碼混合不成問題。使用兩者都是很常見的做法。您可以在xib中完成大部分佈局,並且只添加那些代碼中無法從xib獲得的內容。 – rdelmar 2013-02-15 17:36:41

+0

我認爲這不是一個好習慣混合xibs/storyboards元素,並將其他屬性設置爲樣式/自定義元素。也正如你所說,佈局約束有很多問題,而沒有xib的通用應用程序將文件分離變得更加困難..所以我開始計劃使用xib文件。謝謝你的解釋。 – 2013-02-15 17:52:09

1

這取決於需求和需要。

大部分時間IB都滿足您的要求,所以不需要爲所有GUI工具編寫代碼,但您應該知道如何從代碼創建GUI。

對於iphone,您可以覆蓋您的所有需求,但使用macos一個大型控件和嵌套控件會讓您陷入困境。

因此,它最終會讓你感覺更簡單。

+0

謝謝你的回答。這有助於我打開關於xib文件的想法。 – 2013-02-15 17:53:53

0

我認爲這取決於你想完成什麼。現實是你想要使用所有可用的工具。

您可以使用故事板更快更輕鬆地創建UI,而不是試圖在代碼中找出它。您無需重新編譯即可獲得即時反饋。有時看起來更容易些,而不是想象它會是什麼樣子。

這並不意味着你不應該知道如何在代碼中做同樣的事情。如果你不能在xib/storyboard中做到這一點,我只會回到代碼。

什麼配置你無法做到?使用IB進行國際化非常容易。在IB上有一些很棒的WWDC視頻,故事板和國際化。在排除你可以或不可以做的事之前,我會先檢查一下。

+0

xib中沒有元素的所有屬性,所以您需要自己在代碼中設置它。但我認爲它有點混亂添加對象,併爲xib中的所有對象創建IBOutlet。這是真的,它很容易看到UI和定位元素。我只是想走一條很好的方法來做一個好的結構,從項目到沒有遇到很多問題 – 2013-02-15 17:40:58

0

我會親自使用Storyboard創建它來代替xib。通過故事板,您可以通過編程方式生成界面,遊戲等。您還可以在XIB中創建任何可以在故事板中使用的UIElement。

+0

是的,我也喜歡故事板。但它僅與iOS 5+兼容,我仍然擔心使用iOS 4.0+ – 2013-02-15 17:15:54

+0

的用戶是真實的。爲了向後兼容,您不能使用故事板或自動佈局或任何這些不錯的功能。 – ApolloSoftware 2013-02-15 17:18:20

+0

謝謝你的回覆。 – 2013-02-15 22:56:29