2011-07-21 60 views
2

我正在使用一個應用程序,我希望能夠在單擊刪除按鈕時從UITableView中刪除一些內容。現在,我可以使編輯按鈕工作,通過它顯示帶有線條的圓圈,以顯示您可以刪除,但有一些單元格我不希望用戶能夠刪除。有沒有人知道實現這個簡單的方法。如果你看看這個link它顯示了我所有的三個單元格都顯示刪除,但我只希望前兩個單元格移動,最後一個單元格根本不移動。只有在某些UITableViewCell上有刪除顯示

回答

2

重寫此方法:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 

    if ({SOMETHING TO SAY IF THIS CELL CAN NOT BE DELETED}) { 
     return NO; 
    } 
    return YES; 
} 
+0

這正是正確的答案! – msgambel

0

要覆蓋的方法是

tableView:commitEditingStyle:forRowAtIndexPath: 

UITableViewDataSource Protocol Reference閱讀起來。從這個方法的討論:

當用戶點擊插入(綠色加)控制或刪除與在表格視圖一個UITableViewCell對象相關聯的按鈕 ,表 視圖將此消息發送到數據源,詢問它承諾 的變化。 (如果用戶點缺失(紅色負)控制,該表 視圖然後顯示刪除按鈕來獲得確認。)的數據 源通過調用UITableView 方法insertRowsAtIndexPaths:withRowAnimation:deleteRowsAtIndexPaths:withRowAnimation:提交的插入或缺失,如合適的。

+0

呀,讓我不允許用戶刪除的行,但有什麼辦法,只是甚至沒有紅圈甚至出現?我甚至不希望用戶嘗試刪除該行。我只想要某些行顯示紅色圓圈而不是所有行。我知道我可以隱藏紅圈,但我甚至不希望細胞滑過。我只想要移動的單元格成爲可以刪除的單元格。 – mrbaker

+0

@mrbaker:有趣的問題。我不確定這是否可能(我不這麼認爲),但如果我發現其他情況,我會盡快回復您。 – PengOne

+0

謝謝。是的,我只是覺得應該有一種方式,但我不完全確定。我正在考慮創建不移動的自定義單元格,並不斷顯示uiview,但我並不完全確定它可以正常工作。 – mrbaker