UITableViewCell在iOS7中无法正确提交编辑样式

3

我在我的UITableView中使用了“滑动删除”功能。在过去,它可以正常工作。

自从我将我的项目升级到iOS7后,单元格不会退出“滑动”状态。因此,当我点击删除按钮时,虽然调用了-tableView:commitEditingStyle:forRowAtIndexPath:方法,但它并没有再次隐藏按钮。

我是否需要手动执行此操作,因为在iOS7中需要这样做?如果是,请问我应该使用哪个方法?

1个回答

1
我遇到了同样的问题。问题出在委托方法tableView:didEndEditingRowAtIndexPath:不再被调用(不知道为什么)。
我找到的解决方法是,在tableView:commitEditingStyle:forRowAtIndexPath:中调用[tableview reloadData],而不是在tableView:didEndEditingRowAtIndexPath:中调用。这在iOS 6和7中有效。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        [myDataSource removeObjectAtIndex:indexPath.row];
        [myTable reloadData];
    }       
}

3
重新加载整个tableView 是杀鸡焉用牛刀。使用 -reloadRowsAtIndexPaths:withRowAnimation:。这样可以使动画更加流畅。但仍然很糟糕 :( - Julian F. Weinert
我有同样的问题。这个答案是有效的,但是我需要对行进行动画处理。 - Tankista

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接