2011-05-16 87 views
1

在我的uitableview中,当用户设置编辑模式并尝试删除一行时,我会做一些验证以检查该行是否可以删除。如果不是,我想将行重置为之前的状态,即没有右侧的删除按钮,而只是左侧的负水平按钮。uitableview重置删除按钮

我将使用哪种方法来完成上述操作?

回答

2

试试这个代码,

- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 

if(fails) 
{ 
    [self.tableView reloadData]; 
    [super setEditing:YES animated:YES]; 
    [self.tableView setEditing:YES animated:YES]; 
} 
-1

KingofBliss的回答会完成这项工作,然而,这是一个更具体一点。这种方法将动态重置删除确认,并实质上“点击”删除编辑控件(重置确认的操作)。

UITableViewCell *cell = [self.detailsTableView cellForRowAtIndexPath:indexPath]; 
[cell.subviews enumerateObjectsUsingBlock:^(UIView *subview, NSUInteger index, BOOL *stop){ 

     if([subview isKindOfClass:NSClassFromString(@"UITableViewCellEditControl")]) 
     { 
       UIControl *editControl = (UIControl *)subview; 
       [editControl sendActionsForControlEvents:UIControlEventTouchUpInside]; 
     } 

}];

0

这将重置您需要重置的单元格。

- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(fails) 
    { 
     [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; 
    } 
}