您的位置:首页 > 产品设计 > UI/UE

iOS中使用UITableView的实现向左拉实现删除

2015-07-01 14:06 543 查看
实现UITableVIew实现向左拉,实现删除情况。



实现步骤

1:先设置改table为能编辑的状态。

2:设置canEditRowAtIndexPath的返回为true

3:提交编辑。



下面直接上代码



实现第一步的代码为: self.uitableview.setEdit =true;
(我个人建议这一步不要添加,加上去之后在界面上每一行的左边出现一个红色的减号的圆圈,其实非常难看)


实现第二步:

<span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;">-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath</span>
<span style="font-size:18px;">{
    return true;
}</span>
这一步是设置table为编辑状态。设置每行的状态能编辑。

第三步:设置编辑模式是否为添加还是删除



-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellEditingStyleDelete;
}


第四步:提交编辑模式

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{

    [self.uitableViewshow beginUpdates];
    
    [self.uitableViewshow deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    
    
    [_heros removeObjectAtIndex:indexPath.row];
    //[self.uitableViewshow reloadData];
    [self.uitableViewshow endUpdates];
    
        
    
}


在这里特意说明一下:在这段的开始和结束的时候用了一个

beginUpdates和endUpdates,在oc中实现了删除数据之后是需要刷新数据的,如果在swift中可以直接对self.uitableview.reloadData时可以直接刷新数据。但是在oc中还有一个beginUpdates和endUpdates会完美的代替刷新功能。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: