2011-07-13 83 views
2

我試圖設置UITableView顯示嵌套的線程項目。我正在使用核心數據和NSFetchedResultsController,但我不確定我的方法應該是什麼。我要顯示這樣的信息:實現UITableView樹結構

  • 項目#1
    • 項目#1.1
    • 項目#1.2
    • 顯示所有
  • 項目#2
    • 項目#2.1
    • 商品編號2.2
    • 顯示所有

在上文中,每個子區有一個「顯示全部」按鈕被點擊時將與附加的子項來代替(上述每個子彈是一個單一的表視圖小區)。任何人做了類似的事情,並有任何方法提示?謝謝。

+0

您是否有更深層次的項目#1.1.1? –

+0

@Salcedo目前沒有計劃支持多層嵌套。 –

+0

節點是否例如「項目#1」和葉子例如'item#1.1'都是同一個實體還是它們是兩個不同的實體? – TechZen

回答

4

我不打擾嘗試將NSFetchedResultsController塞進它未創建的模式。 FRC對嵌套表沒有固有的支持,我認爲要做一個嵌套表需要更多的工作,而不是寫一個自定義的tableview控制器來處理這個問題。如果您的表格將顯示來自兩個或更多個實體的對象,那麼這是非常正確的。

此外,我會警告不要在手持移動設備上使用嵌套表格。 iPhone屏幕將只顯示約11個標準尺寸的行。因此,根據上面的示例,任何時候您都只能看到兩個或三個節點標題。更糟糕的是,如果你有一個葉節點超過11個的節點,你將只會看到葉子的屏幕,並且tableview的層次特性將被僞裝。

在大多數情況下,一個層次結構的tableview,每個層次都顯示在一個單獨的層面上,幾乎總是最好的設計。

+0

是的,對於OP,我建議儘可能簡單。 –

1

您可以使用節標題拆分您的列表,標題是項目名稱。所有項目都可用,您可以一次全部滾動瀏覽。由於您只需要一個縮進級別,所以這可能適合您。

我已經在一個名爲GoTasks(從應用商店免費下載)的應用程序中看到相當有效的子項目使用,它將子任務顯示爲多個縮進(儘管沒有崩潰),我認爲它非常有效,即使沒有我iPhone上的屏幕空間。不幸的是,我的iPhone開發經驗不足以告訴你這是如何完成的。