UITableView分组滑动删除

首先说一下编辑的代理方法:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
    return YES;
}
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
       
    }
}

实现以上代理方法就可以实现删除;
如果没有分组的话

// 删除数据源
[self.addressArr removeObjectAtIndex:indexPath.section];
// 删除cell
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];

可是如果你分组的话,这样实现删除就要有bug啦!
所以需要添加一下代码,实现分组的删除:

// 更新
    [tableView beginUpdates];
    [self.addressArr removeObjectAtIndex:indexPath.section];
    [tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationLeft];
    [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
// 结束更新
    [tableView endUpdates];

deleteSections:indexSetWithIndex:是用来删除没有cell的分组;本人的需求是一个分组只有一个数据所以不需要判断;如果你是多个数据就要判断一下是不是最后一个cell,如果只有一个cell就要执行这个方法啦;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 1,398评论 0 1
  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 9,101评论 3 38
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • //我所经历的大数据平台发展史(三):互联网时代 • 上篇http://www.infoq.com/cn/arti...
    葡萄喃喃呓语阅读 51,366评论 10 200
  • 不必因为自己暂时不够好,而刻意改变自己,而是找到让自己和他人都舒服的模式,否则有一天,会因为太执着于改变而迷失自己。
    莫有青草阅读 113评论 0 0