2014-01-23 73 views
1

我有一個靜態TableView,現在需要成爲一個動態TableView,因爲其他視圖需要放置在ViewController周圍,這不能在我的情況下使用容器來完成。如何將靜態UITableView轉換爲動態TableView

問題是:我如何有效地將表視圖從靜態轉換爲動態?

我知道必須將繼承從UITableView更改爲UIViewController並添加委託方法。

但是如何處理所有的表格部分:我有3個部分,6種類型的單元格在靜態表格中。我是否真的需要爲所有這些單元類型分類UITableViewCell並手動處理所有事情,還是有更聰明的方法來做到這一點?

+0

你只需要改變數據源併發送'reloadData'消息到表格視圖。問題是什麼? – Desdenova

+0

@Desdenova只要我改變TableViews內容在Storyboard中從靜態類型到動態類型,我將TableView中的所有部分(除第一個之外)鬆開 – brainray

+0

爲什麼您需要使tableview動態變爲現實?重點是什麼?如果你選擇讓你的表動態化,那麼你必須在數組/字典中硬編碼你的數據,並編寫樣板代碼來填充tableview。我認爲靜態在這種情況下是更好的選擇。 – NightFury

回答

0

你真的不能只是在兩者之間進行轉換。通過僅實現一些表委託方法,比如cellForRowAtIndexPath:,你就會丟失你的靜態內容。也就是說,表格應該是整個時間都是動態的。這樣,您可以定義邏輯來確定它是否應顯示靜態添加的內容或新的動態內容。

另外,您不需要視圖控制器來實現委託/數據源方法。如果你已經有了UITableView的子類,那很好。您可以將其設置爲自己的代理/數據源,並在子類中實現這些方法。

並回答你最後的問題,沒有真的沒有更好的方法來做到這一點。我建議您創建一個基類,它的子類UITableViewCell實現了單元格將共享的所有內容,然後在此基類的子類中實現各個更改。在表格視圖中使用多個單元格子類聽起來好多了。

+0

好吧,看起來我必須去的方式...順便說一句:我確實需要一個UIViewController有可能放置TableView無論我想要的(使用一個容器在這種情況下不起作用,如上面的評論中所述) – brainray

+0

嗯,從完全成熟的靜態TableView中這樣做,它甚至比聽起來好像恕我直言。蘋果應該給我們一種在ViewController中使用靜態電視的方法...... – brainray

+1

@brainray你可以做到這一點。在Interface Builder中向您的視圖控制器添加一個表,選擇它並導航到屬性檢查器。頂部的第一個下拉列表允許您在「靜態單元」和「動態原型」之間切換 –

相關問題