UITableView小技巧--实现cell向左滑动删除,编辑等功能

一、简介



ios8.0之前只能定制左划的一个功能按键,若想要实现两个左划功能按键,却需要费一番功夫。自ios8.0之后,苹果推出新的api,来让开发者可以实现自定义左划控件。



二、初始化tableview



如同普通的tableview初始化一样就可以


三、实现tableview的delegate与datasource



实现你需要实现的datasource和delegate


四、实现自定义左划控件需要的代理



如下是具体的实现代码

[objc]  view plain  copy
  1. - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath  
  2. {  
  3.     return YES;  
  4. }  
  5.   
  6. - (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{  
  7.     UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"删除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {  
  8.         DSLog(@"点击了删除");  
  9.     }];  
  10.     UITableViewRowAction *editAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"编辑" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {  
  11.         DSLog(@"点击了编辑");  
  12.     }];  
  13.     editAction.backgroundColor = [UIColor grayColor];  
  14.     return @[deleteAction, editAction];  
  15. }  
  16.   
  17. - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{  
  18.     editingStyle = UITableViewCellEditingStyleDelete;  
  19. }  


#pragma mark  - 左滑删除编辑


- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath

{

    return YES;

}


- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{

    UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"删除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {

        

        LHShopCarModel *LHShopCarM = _shoppingCarData[indexPath.row];

        Id = LHShopCarM.id;

        [self getDeleShopGoodRequest];

        //刷新本地缓存数据,刷新tableView

        [self.shoppingCarData removeObjectAtIndex:indexPath.row];

        [self.tableView deleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];

        [self showView];

    }];

    deleteAction.backgroundColor = [UIColor redColor];

    return @[deleteAction];

}


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

    editingStyle = UITableViewCellEditingStyleDelete;

    

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值