2011-12-01 84 views
2

背景編輯時隱藏一些UITableViewCells?

我真的很努力工作,如何處理一個UITableView的編輯模式和隱藏編輯開始時,在某些行。

我正在使用分組表格視圖樣式,每個部分有多個部分和多個行。每個部分的最後一行標題爲「添加新...」。

這個想法是允許最終用戶點擊每個部分中的「添加新...」行,然後被帶到一個新的屏幕,在那裏他們填寫一些字段,然後返回到那個tableview與他們的新行添加到相關部分。所以最後一行並不真正涉及到數據源,更多的是用戶體驗。

我已經設法將追加行追加到每個部分的末尾。

問題

我有一個按鈕,電話:tableView setEditing:animated:這鑲石的所有行,並添加刪除圖標到每一行的左側。

我不想做的是允許用戶刪除「添加新...」行。所以我的原創思想是使用tableView:canEditRowAtIndexPath:刪除那些「添加新...」行的刪除功能。

這工作,但看起來真的很垃圾,因爲所有的行都插入「添加新...」行之外。

enter image description here

所以我現在的想法是,當編輯模式今起剛剛從表視圖中刪除「添加」行,然後在編輯模式下完成再次添加它們。

我試圖通過遍歷所有行,當用戶點擊編輯按鈕,但它似乎只能得到當前可見的行使用cellForRowAtIndexPath:

所以我可以刪除可見,但只要用戶向下滾動tableview中的添加按鈕仍然存在對於不可見的部分(當時的編輯被初始化)中的那些。

幫助!

有誰知道我怎麼能隱藏每個部分的「添加」行,當用戶編輯表,然後將它們添加回來後?

我在尋找,當用戶編輯聯繫人,該聯繫人應用程序使用相同的功能。

+1

你應該看看蘋果的配方示例代碼。他們正在做相反的事情。他們在編輯模式下插入行。代碼應該給你一個想法你可以做什麼。 – dasdom

+0

真的很有幫助的答案。示例代碼似乎正是我正在嘗試的。我要研究它,看看它是否能解決我的問題。 – Camsoft

回答

0

實際上,您確實已經關閉了答案,只需使用方法cellForRowAtIndexPath來拾取要隱藏的單元格,並將其隱藏屬性設置爲YES。你做到了!


哦,我很抱歉,您使用的是組風格我沒有注意到,所以我的建議是,你可以嘗試添加按鈕分離別人,就像它包含在一個單一的部分。

0

您可以在「添加行」行上顯示綠色(+)按鈕,使其與可刪除行對齊。

只需在表格視圖委託中覆蓋-tableView:editingStyleForRowAtIndexPath:並返回該行的UITableViewCellEditingStyleInsert

+0

謝謝,我知道你可以做到這一點,但這不是我想要的。我只是想知道如何在編輯時刪除「添加」行。我有這個接口的特定需求。 – Camsoft

0

如何從實際數據源中刪除添加行並調用[tableView reloadData],然後當編輯模式改回時,再次將它們添加回數據源並重新加載數據。

0

從canEditCellAtIndexPath在部分的每一個細胞回YES,那麼在覆蓋 - (UITableViewCellEditingStyle)的tableView:(UITableView的*)的tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {}和 「添加一行」 返回UITableViewCellEditingStyleNone排否則返回UITableViewCellEditingStyleDelete