在ios中实现左划cell 可删除 示例图
思路: 四个方法
1.让tableView处于可编辑状态
2.设置某一行 是否可以编辑
3.设置编辑风格(删除 或是添加 移动)
4提交编辑操作
1.让tableView处于可编辑状态
-(void)setEditing:(BOOL)editing animated:(BOOL)animated{
[super setEditing:editing animated:animated];
[self.tableView setEditing:editing animated:animated ]
}
2.设置某一行 是否可以编辑
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
3.设置编辑风格(删除 或是添加 移动)
-(UITableViewCellEditingStyle )tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
//删除风格
return UITableViewCellEditingStyleDelete;
//多选风格 UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert]
}
4提交编辑操作
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
if(editingStyle==UItableViewcellEditingStyleDelete){
nsstring key=_allkey[Indexsection];
nsarry *group=[_classDic valueForkey:key];
if(group.count==1){
[_classDic removeObject:_allkeys[index.section]];
[_allkeys removeObjedtAtIndex:indexPath.section];
//2.UI界面删除
[tableView deleteSections:[[NSIndexSet alloc]initWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationRight];
}
else
{
//行删除
//1.数据删除
[group removeObjectAtIndex:indexPath.row];
//ui界面删除
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationMiddle];
}
}
}
上述操作只是在UI界面里做的删除操作,程序再次运行,界面还会重新出现刚才删除的cell,如果想要永久删除cell,那么需要删除对应本地的数据.