2008-09-25 87 views
9

我在iPhone開發學習過程中很早。我試圖讓我的腦袋圍繞着各個部分。現在,我剛剛採用了基本的NavigationController模板,並試圖用幾個文本字段創建一個簡單的分組表格視圖。我似乎無法做到的是讓Interface Builder允許我將UITableViewCell拖放到UITableView中,然後我可以向Cell中添加文本字段。這甚至有可能(它似乎應該給它的事實,UITableViewCell是一個可拖動的控件)?使用Interface Builder for UITableViews

如果不是,那麼這是否意味着所有這些都是我需要編寫自己的代碼?

回答

17

您可以使用Interface Builder創建單元,但必須將其設置爲頂級對象,而不是表視圖的子級。然後你可以返回這個單元格在你的視圖控制器的tableView:cellForRowAtIndexPath:函數中。

確保給小區的標識在Interface Builder,然後使用相同的標識符與dequeueReusableCellWithIdentifier:(見它是如何工作的示例代碼 - 這個想法是,細胞得到再利用 - 的操作系統只會一次性分配儘可能多的單元格,以節省內存的巧妙方式。)

1

不幸的是,它並沒有真正這樣工作 - tableview中的單元格是由代表在運行時生成的。不過,它變成了非常簡單的代碼。查看tableview示例代碼,這很容易遵循。

6

小心啓動頭部的方法。如果您沒有正確處理您的IBOutlets,您將會泄漏。我會盡力解釋這一點,盡我所能,無需發佈代碼(NDA)。如果您打算使用IB創建您的單元格,請使用它自己的Xib文件製作UITableViewCell。將文件所有者設置爲UIViewController子類(或UITableController)。請致電,如UITableViewCell *cellFactory。在UITableViewDataSource方法tableView:cellForRowAtIndexPath:中做下面的僞代碼;

  1. 請嘗試使用IB
  2. 標識您在安裝成功的話,做一個出列單元格。只需使用單元格
  3. 否則您需要創建一個新的單元格。在那裏使用適當的xib文件的[NSBundle mainBundle] loadNibNamed:owner:options:方法。這將填滿cellFactory ivar與一個新的細胞。棘手的部分來了。
  4. 設置cell = cellFactory然後釋放cellFactory並將其設置爲零以確保您不會意外再次使用它。您現在可以安全使用正常