在UITableViewCell中,如何将删除确认模式恢复为正常编辑模式?

时间:2011-06-16 16:45:26

标签: iphone uitableview

我在某些单元格的常规单元格删除确认之上有一个自定义确认警告对话框,它对这些单元格进行双重确认。 (这是在用户进入编辑模式后,而不是通过滑动)因此,如果用户在我的自定义确认对话框中单击“确定”进行确认。它应该进行实际的删除,由于整个单元格将从TableView中删除,因此表现良好。但是,如果用户单击“取消”,则单元格不会被删除,它将保留在表格中并保持“取消确认模式”。这不是我想要的,我希望它恢复到'正常的单元格编辑模式“。我搜索了苹果文档,它只提供了一个”showsDeleteConfirmation“readonly方法。它真的没有办法将此模式还原为单元格编辑。我可以这样做来破解它:

        [cell setEditing:NO animated:NO];
        [cell setEditing:YES animated:NO];

我无法在此处启用动画,因为它看起来很糟糕,很想再次回到非编辑模式再到编辑模式。但没有它,动画过渡并不是很顺利。这有什么清洁方法吗?

3 个答案:

答案 0 :(得分:12)

对于仍然在寻找此问题的其他人来说,这对单个单元格进行了平滑,相反的转换:

[tableView setEditing:FALSE animated:TRUE];

答案 1 :(得分:7)

假设您正在为显示删除确认的单元格存储indexPath,您可以这样做:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == [alertView cancelButtonIndex]) {
        [self.tableView reloadRowsAtIndexPaths:@[self.indexPathToDelete] withRowAnimation:UITableViewRowAnimationAutomatic];
    }

    // Do other stuff

}

单元格将使用淡入淡出动画恢复删除确认。

答案 2 :(得分:0)

我不太了解你的问题,但你的意思是设置table.editing = NO;?