iOS学习笔记02 UITableView 左滑删除cell

很多人对于左滑删除cell都不太会,我今天花了点时间看了下这个系统原生的左滑删除cell,很简单,分几步走就可以了。
第一步,就是简单的创建列表tableview,然后就是设置

self.tableView.delegate = self;
self.tableView.datasource = self;

接下来就是简单的实现代理方法了。

-(NSInteger) numberOfSectionsInTableView:(UITableView)tableView
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

这四个基本方法自不用多说,大家都知道的,接下来就是一些删除要用到的方法。

第一个:

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

其实很多方法看名字就知道可以实现什么,这个方法就是问你可不可以进行编辑,编辑里面包括很多东西,也包括删除这个事件。看返回值是YES还是NO,YES就是可以编辑,反之就是不可以呗,当然,你也可以根据条件判断,哪一行可以编辑,哪一行不可以编辑。
第二个:

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

这个就是返回单元格的编辑风格,你是要做什么样的编辑呢,这里只说做删除编辑,所以直接返回return UITableViewCellEditingStyleDelete;就是代表删除的。
返回return UITableViewCellEditingStyleInsert;这样的就是插入的。
第三个:

-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath

接下来就是一个比较个性化的设置方法。就是自定义删除按钮的名称,想显示啥就显示啥,差不多就行,return @"删除";像这样就可以了
第四个:

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
{
    [self.dataArr removeObjectAtIndex:indexPath.row];
    [tableView deleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];
}
else
{
    [self.dataArr addObject:@100];
    NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:self.dataArr.count - 1 inSection:0];
    [tableView insertRowsAtIndexPaths:@[newIndexPath]withRowAnimation:UITableViewRowAnimationAutomatic];
}
}

这个方法我个人认为应该算是最重要的方法了,无论你的列表里面有没有数据,这个方法你都应该写上,一般的列表上显示的数据都是由数组或者字典里的数据提取出来的,这个方法中你就需要在你提取数据的源头进行删除数据,不然即使及删除了列表的行,也不管用,那条数据还是会显示出来,或者什么地方没弄好,直接是报错,所以要注意这一点。在删除模式中,顺序很重要,稍微出一点错就会崩溃。像我上面写的,要根据所在行删除数组对应的数据,然后是更新界面。下面的那个else里面就是插入操作。
这样就是基本完成了左滑删除的功能。
(要是有哪些地方错了请指正我,我也是初学者,希望与大家共同学习,共同进步)
tableviewcell的左滑删除Demo
这个demo里面我加了一个自定义的cell,注释啥的也怎么加,要是真有人下载了,有看不明白的就直接留言找我就可以了哈。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 9,097评论 3 38
  • 读书笔记摘录如下。 1. “妈妈,如果有一天我真的不在了,你也不要为此伤心难过,我的人生虽然短暂,却充满着母...
    3e1094b2ef7b阅读 1,763评论 0 3
  • 马上到年关了,心中浮想起儿时过年的许多场景:蓝蓝的天空,嗖嗖北风刮得好冷,腮帮冻得通红,穿着哥哥穿过的八成新棉袄,...
    西贝悠哉阅读 188评论 0 1
  • 我拍了很多照片。每到下午就头痛。今天十分兴奋有八分真意。感觉自己什么都懂。欺软怕硬,毫无幽默,自言自语。 ​​​
    寻0阅读 163评论 0 0