2010-08-10 48 views
1

關於UITableView的Apple文檔討論瞭如何添加/編輯/刪除行,但沒有討論添加/編輯/刪除部分是細節,特別是關於UI。在添加/刪除行的情況下,可以申請「加」和使用「刪除」該行樣式:編輯/刪除部分的建議

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath; 

但是,對於部分沒有這樣的方法(即我所知道的),它可以是用於向用戶顯示視覺控件以添加「+」或刪除「 - 」部分。我可以使用用於新行的邏輯添加一個新部分,但是,我不知道如何去刪除整個部分(或允許用戶編輯部分,例如部分標題)。我應該如何去刪除整個部分?

背景: 我正在研究基於核心數據的應用程序。我在實體之間有一對多的關係。

Entity r (root) <-->> Entity p (parent), 
Entity p (parent) <-->> Entity c (child) 

當用戶創建父記錄(實體p​​)時,會自動創建一組固定的子記錄(實體c)。在用戶界面中,我在頭部顯示了父母(實體p)的基本信息,例如標題和關聯的子記錄(實體c)作爲部分行,並在頁腳中添加一些摘要。出於某些合乎邏輯的原因,我不能選擇鑽取方法(以避免添加/刪除部分)。

回答

1

編輯:

既然你可以定義部分自定義視圖,你最好的賭注是你自己的UIView其中,刷卡時(用手勢)將刪除部分取代現有的。你也許可以模仿右邊那個紅色的刪除按鈕,或者當用戶在一個部分上滑動時你可以有一個帶有確認的UIAlertView。

你會使用tableView:deleteSections:withRowAnimation:刪除該部分。

下SO問題深入探討的主題:UITableView: deleting sections with animation

那句話:

首先,

// UITableView.h:311... 
- (void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation; 
- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation; 
- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0); 

其次,

UIKIT_EXTERN_CLASS @interface UITableView : UIScrollView <NSCoding> { 
// ... 
NSInteger     _swipeToDeleteSection; 
+0

我知道的方法的UITableView你我提到過,並且我明白刪除某個部門會涉及的邏輯n或添加新的部分。而且,_swipeToDeleteSection是UITableView類的私有成員。它沒有在API文檔中公開,所以我猜測即使我弄清楚如何使用它,我的應用程序也不會被接受。 – Mustafa 2010-08-10 09:55:22

+0

啊,hrm。所以不要讓你靠得更近......至少功能似乎存在。我猜蘋果公司把它變成了私人的,因爲他們決定不支持它或什麼的。 – Kalle 2010-08-10 10:01:15

+0

等待,沒關係,有一個tableView:deleteSections:withRowAnimation:方法,顯然。但我想你的問題是讓它支持滑動刪除該部分。 – Kalle 2010-08-10 10:04:21