uicllectionViewiOS DeveloperiOS

UITableView分组滑动删除

2016-03-29  本文已影响296人  芝麻绿豆

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

- (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就要执行这个方法啦;

上一篇 下一篇

猜你喜欢

热点阅读