2010-10-06 14 views
10

來自Java/Swing世界的iOS新手,我習慣以編程方式創建UI,讓組件自行調整大小,並使用各種巧妙的佈局管理器來排列事物。適用於iOS /單點觸控編程UI佈局的最佳做法

它已經很明顯,iOS的方式是大量使用Interface Builder,並具有大量的固定大小和定位。我不確定IB是否會自然而然地出現,但是我認爲固定佈局是有意義的,因爲您正在使用有限的空間和固定的窗口大小。

它似乎仍然寫了很多樣板,並且違反了DRY,等等。

有人可以指出我在iOS UI,特別是程序化UI上的一個很好的入門指南嗎?

回答

20

你並不需要用IB來編寫MonoTouch應用程序。我幾乎從不做。 CocoaTouch API非常簡單直觀的開發。

我還沒有真正找到了比蘋果文檔其他UI開發的任何書面記錄(這是非常好的,順便說一下,值得閱讀),所以這裏去的一些提示,根據我的經驗:

  • 繼承是維護代碼清潔的關鍵。您可以繼承基本上API中的任何類,如按鈕,控制器,視圖等。繼承並在這些類中添加自定義項。像許多示例所示,不要像AppDelegate中的所有內容一樣。你稍後會感謝我。
  • 我已經提到過繼承嗎?
  • iOS沒有的一件事就是佈局管理器,所以如果你習慣像你提到的Java那樣,這聽起來有點奇怪。與Java人認爲的不同,這不是什麼大不了的事。 UITableViews對此有極大的幫助(參見下一節)。
  • 許多iphone應用程序都建立在UITableViewController之上,甚至不像表格的應用程序。這是一個很棒的框架來完成與滾動相關的任何事情。學習使用它。幾乎所有垂直滾動的東西都是UITVC。遵循定義何時創建以及何時處理單元和對象的準則。
  • 每次在控件中添加一個Frame位置時都要小心。儘可能嘗試使用來自其他位置(例如x + 40)的偏移量,而不是設置硬編碼值。
  • 確保您根據需要將視圖添加到適當的容器中。例如,如果要添加全局「加載」視圖,請將其添加到Window對象,而如果要在表格單元格的左側添加圖像,請使用ContentView。 iOS始終自動更改這些特殊視圖(調整屏幕大小以適應「通話」欄頂部或旋轉手機)。
  • Miguel de Icaza創建了一個用於管理表單和表格的優秀框架,名爲MonoTouch Dialog。 Take a look, and enjoy.
+0

謝謝 - 這很有幫助。如果僅僅因爲這麼多的文檔假設你在使用它,我會一直試圖弄清楚IB,但是我可能會在太久之前畢業於手工編碼。 – 2010-10-08 18:25:52

相關問題