2011-04-02 62 views
4

這類似於都在問如何刷卡/不確認刪除的問題:UITableView中禁用的「刪除」確認

UITableView swipe to delete with no confirmation

我的tableview與UITableViewCellEditingStyleDelete組單元。當tableview處於編輯模式時,單元顯示一個帶有' - '的紅色圓圈圖標。要刪除單元格,用戶點擊紅色圓圈,並出現一個刪除按鈕。用戶必須點擊Delete觸發tableView:commitEditingStyle:forRowAtIndexPath:

我的一些行支持UITableViewCellEditingStyleInsert。在這種情況下,單元顯示一個帶有'+'的綠色圓圈圖標。點擊圓圈立即調用tableView:commitEditingStyle:forRowAtIndexPath:。我想在用戶點擊最初的紅圈圖標時立即調用tableView:commitEditingStyle:forRowAtIndexPath:。也就是說,沒有刪除按鈕的步驟。

任何想法?

有沒有一種方法可以提供自定義的編輯控件,從左側像delete/insert一樣插入?如果是這樣,也許我可以使用這種機制?

回答

3

我想出了一個解決方案,但它有被拒絕的風險。 (通過classname檢查無證類是否構成違反sdk協議?)

也許有人可以改進?

基本上,在我的自定義UITableViewCell的上下文中,我注意到要添加的刪除按鈕(不是UIButton,不幸),然後調用它的UIControlEventTouchUpInside操作。有點延遲,所以動畫工作:

- (void) addSubview:(UIView *)view 
{ 
    if ([NSStringFromClass([view class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) 
    { 

     UIControl* c = (UIControl*)view; 

     NSArray* actions = [c actionsForTarget: self forControlEvent: UIControlEventTouchUpInside]; 

     [self performSelector: NSSelectorFromString([actions lastObject]) withObject: view afterDelay: .25]; 

     return; 
    } 

    [super addSubview: view]; 
} 
+0

我會好奇聽到,如果這被拒絕或沒有提交它。 – 2011-04-11 17:10:38

+0

是的,一旦被接受/拒絕,我會在這裏發帖。我可能會嘗試重寫這個來移除UITableViewCellDeleteConfirmationControl類名 - 但還沒有決定做到這一點的最佳方式。 – TomSwift 2011-04-11 19:25:48

+0

請讓我們知道它被接受還是拒絕? – Ilanchezhian 2011-11-25 09:04:51