UITableView的编辑样式

    UITableView是iOS众多UI控件中较为神奇的一个,熟练的使用UITableView必然能为你的UI界面搭建带来莫大的好处!

    下面就UITableView的编辑样式做一下梳理:

    UITableView的编辑样式:

typedef NS_ENUM(NSInteger, UITableViewCellEditingStyle) {

    UITableViewCellEditingStyleNone,  // 无样式

    UITableViewCellEditingStyleDelete, // 删除样式

    UITableViewCellEditingStyleInsert // 插入样式

};
self.dataArr = @[ @"一一一一一一一一",

                     @"二二二二二二二二",

                     @"三三三三三三三三",

                     @"四四四四四四四四",

                     @"五五五五五五五五",

                     @"六六六六六六六六",

                     @"七七七七七七七七",

                     @"八八八八八八八八"];

// 设置 
self.tableView.editing = YES;

//同时实现talbeView的代理方式:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.row < 2) { // 删除样式

        return UITableViewCellEditingStyleDelete;

    } else if (indexPath.row >= 2 && indexPath.row < 4) { // 插入样式

        return UITableViewCellEditingStyleInsert;

    } else if (indexPath.row >=4 && indexPath.row < 6){ // 圆圈样式

        return UITableViewCellEditingStyleInsert | UITableViewCellEditingStyleDelete;

    } else { // 无样式

        return UITableViewCellEditingStyleNone;

    }

}

即可展示UITableView的编辑样式,如下图:

170136_8Fwj_2604520.png

以上分别对应的样式为 删除 , 插入,(特殊的样式!!!!),无样式, 其中比较特别的也是这篇博文主要要介绍的功能.

-----------------------------------------------

当返回的样式是

 return UITableViewCellEditingStyleInsert | UITableViewCellEditingStyleDelete;

时,

展示的是前面有个圆圈的样式,这种样式可以实现选中和反选功能 (这种样式的cell还是很实用并且常见的).

设置 

UIView *view = [[UIView alloc] initWithFrame:cell.bounds];

    view.backgroundColor = [UIColor whiteColor];

    cell.multipleSelectionBackgroundView = view;

  就可以把这种样式选中的蓝色背景给去掉.(应该也有其他方法,你们可以自行探索哦)

其中 self.tableView.indexPathsForSelectedRows; 返回的是所有选中cell的indexPath

数组.用时可以通过遍历 数组获得所有选中的cell 所在的分区和行.从而进行相应的逻辑处理!

self.tableView.tintColor = [UIColor redColor]; 可以修改前面圆圈的颜色

---------------------------------------------------

至于删除功能,一般不用在编辑状态下的删除,而是用用左滑删除:

此时设置 self.tableView.editing = NO;(默认为NO),然后实现代理方法:

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

    NSLog(@"----->%ld",editingStyle);

    if (editingStyle == UITableViewCellEditingStyleDelete) {

        NSLog(@"---->点击了删除"); // 在这里面做相应的删除逻辑处理

    }

}

效果图如下:

171258_fcap_2604520.png

插入的编译样式(除了苹果通讯录有用到)基本没见过.....

以上为内容为个人总结,如果纰漏欢迎批评指正!

 

 

 

 

      

转载于:https://my.oschina.net/zhxx/blog/674227

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值