在编辑tableview的时候,我们有时候会需要编辑对一些cell进行删除(增加),在这个时候,我们最好用系统的方法来进行增删的操作

//
// text1Controller.m
// text
//
// Created by 123 on 16/5/5.
// Copyright © 2016年 yipinbaike. All rights reserved.
// #import "text1Controller.h" @interface text1Controller ()<UITableViewDelegate,UITableViewDataSource>
{
UITableView * _mainTableView;
UITableViewCellEditingStyle _editStyle;
NSMutableArray * _dataArray;
NSMutableArray * _delArray;
}
@end @implementation text1Controller - (void)viewDidLoad {
[super viewDidLoad]; //数据源
_dataArray = [[NSMutableArray alloc]init];
for (int i = ; i<; i++) {
NSString *text = [NSString stringWithFormat:@"fstext-%i", i];
[_dataArray addObject:text];
}
//删除数据源
_delArray = [[NSMutableArray alloc]init];
[self createTableView];
} - (void)createTableView{
UIButton * btn1 = [[UIButton alloc]initWithFrame:CGRectMake(, , self.view.frame.size.width/, )];
[self.view addSubview:btn1];
[btn1 addTarget:self action:@selector(editing) forControlEvents:UIControlEventTouchUpInside];
btn1.backgroundColor = [UIColor whiteColor];
[btn1 setTitle:@"编辑" forState:UIControlStateNormal];
[btn1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; UIButton * btn2 = [[UIButton alloc]initWithFrame:CGRectMake(self.view.frame.size.width/, , self.view.frame.size.width/, )];
[self.view addSubview:btn2];
[btn2 addTarget:self action:@selector(delete) forControlEvents:UIControlEventTouchUpInside];
btn2.backgroundColor = [UIColor whiteColor];
[btn2 setTitle:@"删除" forState:UIControlStateNormal];
[btn2 setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; _mainTableView = [[UITableView alloc]initWithFrame:CGRectMake(, , self.view.frame.size.width, self.view.frame.size.height-)];
[self.view addSubview:_mainTableView];
_mainTableView.delegate = self;
_mainTableView.dataSource = self;
_editStyle =UITableViewCellEditingStyleDelete;
} - (void)delete{
if (_mainTableView.isEditing) {
for (id model in _delArray) {
[_dataArray removeObject:model];
}
[_delArray removeAllObjects];
[_mainTableView reloadData];
_mainTableView.editing = NO;
_editStyle = UITableViewCellEditingStyleDelete;
}
}
- (void)editing{
_editStyle = UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
_mainTableView.editing = !_mainTableView.isEditing;
if (!_mainTableView.editing) {
_editStyle = UITableViewCellEditingStyleDelete;
[_delArray removeAllObjects];
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return _dataArray.count;
}
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
}
cell.textLabel.text = _dataArray[indexPath.row];
return cell;
} - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return ;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
return _editStyle;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (tableView.isEditing) {
[_delArray addObject:_dataArray[indexPath.row]];
}
} - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
if (tableView.isEditing) {
[_delArray removeObject:_dataArray[indexPath.row]];
}
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
if (editingStyle==UITableViewCellEditingStyleDelete) {
[_dataArray removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
}
//设置删除按钮现实中文
- (NSString*)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{
return @"删除";
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

tableviewcell 系统工具删除:左滑删除,选中多个删除的更多相关文章

  1. iOS UITableView左滑操作功能的实现(iOS8-11)

    WeTest 导读 本文主要是介绍下iOS 11系统及iOS 11之前的系统在实现左滑操作功能上的区别,及如何自定义左滑的标题颜色.字体大小. 一.左滑操作功能实现 1.如果左滑的时候只有一个操作按钮 ...

  2. iOS开发——UI进阶篇(四)tableView的全局刷新,局部刷新,左滑操作,左滑出现更多按钮,进入编辑模式,批量删除,自定义批量删除

    首先创建项目,在storyboard如下布局控件,设置好约束 然后创建cell模型类XMGWineCell数据模型类XMGWine创建UITableView,设置数据源协议,实现数据源方法懒加载数据这 ...

  3. Android开发学习之路-PopupWindow和仿QQ左滑删除

    这周作业,要做一个类似QQ的左滑删除效果的ListView,因为不想给每个item都放一个按钮,所以决定用PopupWindow,这里记录一下 先放一下效果图: 先说明一下这里面的问题: ①没有做到像 ...

  4. 第八篇、UITableView常用功能(左滑出现多个按钮,多选删除等)

    1.左滑动出现多个按钮 /** * 只要实现了这个方法,左滑出现按钮的功能就有了 (一旦左滑出现了N个按钮,tableView就进入了编辑模式, tableView.editing = YES) */ ...

  5. Android -- RecyclerView实现左滑删除

    1,在实际项目中我们常常有对一个列表进行滑删除操作,使用我们昨天的ItemTouchHelper其实也可以实现简单的实现这个功能,先来看一下使用ItemTouchHelper来实现的效果: 2,从上面 ...

  6. 微信小程序独家秘笈之左滑删除

    代码地址如下:http://www.demodashi.com/demo/14056.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...

  7. [Xcode 实际操作]五、使用表格-(9)删除UITableView单元格(手势左滑调出删除按钮)

    目录:[Swift]Xcode实际操作 本文将演示如何删除某一行单元格.手势左滑调出删除按钮. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIK ...

  8. 仿QQ列表左滑删除

    一直想写个仿QQ通讯列表左滑删除的效果,今天终于忙里偷闲,简单一个. 大概思路是这样的: 通过 ontouchstartontouchmoveontouchend 结合css3的平移. 不多说,直接上 ...

  9. 模仿QQ左滑删除

    需求: 1.左滑删除 2.向左滑动距离超过一半的时候让它自动滑开,向右滑动超过一半的时候自动隐藏 3.一次只允许滑开一个item 还有,根本不需要自定义view来实现,谨防入坑 布局: <?xm ...

随机推荐

  1. 二、CSS 基本介绍

    [ 显示目录 ] [ 隐藏 ] 目录 基本概念 CSS组成部分 CSS的规则 引入CSS样式的方法 颜色的表示 CSS Reset 选择器分类 浮动 盒子模型 box-sizing属性 实例:实现“田 ...

  2. Linux初识(转)

    文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基本原理.文件存储结构.软链接 ...

  3. switchover步骤切换

    主库 alter system switch logfile; alter system set log_archive_dest_state_2='defer'; select switchover ...

  4. 给产品经理讲技术,不得不懂的TCP和UDP

    TCP/IP协议,你一定经常听说吧,其中TCP(Transmission Control Protocol)称为传输控制协议,IP(Internet Protocol)称为因特网互联协议,好吧,这都是 ...

  5. [转] DateTime.Now.ToString()的较为全面的使用介绍

    原文地址 DateTime.Now.ToString() 用法 具体的操作如下面的两段代码 //2008年4月24日 System.DateTime.Now.ToString("D" ...

  6. [转] C# 绘制报表,使用Graphics.DrawString 方法

    原文 Graphics.DrawString 方法 在指定位置并且用指定的 Brush 和Font 对象绘制指定的文本字符串. public void DrawString( string s, Fo ...

  7. db file sequential read (数据文件顺序读取)

    转载:http://www.dbtan.com/2010/04/db-file-sequential-read.html db file sequential read (数据文件顺序读取): db ...

  8. Weblogic修改后台日志输出级别

  9. ASP.NET 如何做出简单的验证码

    如果说要做验证码,那不得不提的就是GDI+绘图了.我们都知道验证码是以图片形式展示的,而且是动态生成的,这样就需要我们去画出它. 科普一下,什么是GDI+? GDI+是图形设备接口(GDI)的高级版本 ...

  10. Zabbix监控Linux磁盘I/O

    东西都上传到这里了: https://github.com/RexKang/Zabbix/tree/master/OS/Linux-disk-discovery   需要用到的东西: Zabbix的L ...