2013-02-21 40 views
1

在我的代碼中,某些單元格不應該顯示給UITableView上的用戶。
所以我的dataSource會提供對象,但我想檢查我的cellForRowAtIndexPaht如果單元格被隱藏,如果是,幾乎不返回任何內容。 因此,細胞的高度將爲零,但更重要的是,我想保存我的功能,建立整個細胞。需要UITableView的cellForRowAtIndexPath:爲某些行返回任何內容

我試圖返回零,但唉,它崩潰。

回答

2

數據源應該返回實際在表中的內容。

您可以輕鬆地創建一個新數組來保存要顯示的數據,並省略不想看到的數據(將其保存在主數據源中)。然後,因爲可以看到表視圖中的某些行,請將它們添加到表數據數組中,並使用UITableView的insertRows方法爲新查看的新數據添加動畫效果。

1

您可以將邏輯上移到用於創建UITableView的numberOfSectionsnumberOfRowsInSection方法嗎?基本上,無論您使用什麼邏輯來嘗試併爲這些單元返回null,都可以移動到UITableView類中的numberOfRowsInSection方法中,並僅返回可見(而非隱藏)單元的數量。

然後,您將不得不配置您的cellForRowAtIndexPath方法,從數據源中按順序分配單元格,方法是對可見行進行計數,而不是將它們從數組中拉出。

我不認爲你會想'沒有'返回一個期待對象的程序。

鏈接到Apple Reference Docs for UITableView,可以輕鬆地使用numberOfSections和numberOfRowsInSections來邏輯修改在表視圖中顯示的數據量。

相關問題