使UItableViewCell 变为可删除状态

来源:互联网 发布:柏拉图表软件 编辑:程序博客网 时间:2024/05/18 03:36

在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,那么需要删除对应本地的数据.

0 0