tableviewcell 系统工具删除:左滑删除,选中多个删除
在编辑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 系统工具删除:左滑删除,选中多个删除的更多相关文章
- iOS UITableView左滑操作功能的实现(iOS8-11)
WeTest 导读 本文主要是介绍下iOS 11系统及iOS 11之前的系统在实现左滑操作功能上的区别,及如何自定义左滑的标题颜色.字体大小. 一.左滑操作功能实现 1.如果左滑的时候只有一个操作按钮 ...
- iOS开发——UI进阶篇(四)tableView的全局刷新,局部刷新,左滑操作,左滑出现更多按钮,进入编辑模式,批量删除,自定义批量删除
首先创建项目,在storyboard如下布局控件,设置好约束 然后创建cell模型类XMGWineCell数据模型类XMGWine创建UITableView,设置数据源协议,实现数据源方法懒加载数据这 ...
- Android开发学习之路-PopupWindow和仿QQ左滑删除
这周作业,要做一个类似QQ的左滑删除效果的ListView,因为不想给每个item都放一个按钮,所以决定用PopupWindow,这里记录一下 先放一下效果图: 先说明一下这里面的问题: ①没有做到像 ...
- 第八篇、UITableView常用功能(左滑出现多个按钮,多选删除等)
1.左滑动出现多个按钮 /** * 只要实现了这个方法,左滑出现按钮的功能就有了 (一旦左滑出现了N个按钮,tableView就进入了编辑模式, tableView.editing = YES) */ ...
- Android -- RecyclerView实现左滑删除
1,在实际项目中我们常常有对一个列表进行滑删除操作,使用我们昨天的ItemTouchHelper其实也可以实现简单的实现这个功能,先来看一下使用ItemTouchHelper来实现的效果: 2,从上面 ...
- 微信小程序独家秘笈之左滑删除
代码地址如下:http://www.demodashi.com/demo/14056.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- [Xcode 实际操作]五、使用表格-(9)删除UITableView单元格(手势左滑调出删除按钮)
目录:[Swift]Xcode实际操作 本文将演示如何删除某一行单元格.手势左滑调出删除按钮. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIK ...
- 仿QQ列表左滑删除
一直想写个仿QQ通讯列表左滑删除的效果,今天终于忙里偷闲,简单一个. 大概思路是这样的: 通过 ontouchstartontouchmoveontouchend 结合css3的平移. 不多说,直接上 ...
- 模仿QQ左滑删除
需求: 1.左滑删除 2.向左滑动距离超过一半的时候让它自动滑开,向右滑动超过一半的时候自动隐藏 3.一次只允许滑开一个item 还有,根本不需要自定义view来实现,谨防入坑 布局: <?xm ...
随机推荐
- 【同行说技术】iOS程序员从小白到大神必读资料汇总
在文章<iOS程序员从小白到大神必读资料汇总(一)>里面介绍了很多iOS入门学习的资料,今天小编就发几篇技术进阶的文章,快来看看吧! 一.iOS后台模式开发指南 这个教程会教你在什么时候怎 ...
- Linux下安装Android Studio(ubuntu)
一. 安装Android Studio 1. 添加源,按回车键继续 sudo apt-add-repository ppa:paolorotolo/android-studio 2. 更新源 sudo ...
- 20160128.CCPP体系详解(0007天)
以下内容有所摘取,进行了某些整理和补充 论浮点数的存储原理:float浮点数与double浮点数的二进制存储原理–>阶码 浮点数转二进制 1.整数int类型和浮点数float类型都是占用4个字节 ...
- 【英语】Bingo口语笔记(28) - 表示“秘密”
- Cadence Allegro导网表的错误问题解决
在Allegro导入网表的时候,有时候会出现这样一个错误问题,如下: ------ Oversights/Warnings/Errors ------ #1 ERROR(SPMHNI-235): ...
- linux内核值shmmax问题
问题:(rac安装过程中grid检测) Please run the following script on each node as "root" user to execut ...
- Android 高仿微信 获取最近刚刚拍照的缩略图 功能实现
原理其实挺简单的,android 中文件 修改 增加 删除等等 都会在数据库里的某个表里记录下来,你需要的时候 只要迅速的去查找这个表里的值 即可得到你想要的所有信息. 实际上 如果真正理解这个表结构 ...
- vim的保存误认为utf8问题
用vim改脚本改到一处写到'太原':w一下,再打开,,结果给乱码了...我默认sql是用cp936的,,,想到到和记录本的联通问题一样.... 可能会问我为什么不用utf8,,,,因为ms200 ...
- 502 Bad Gateway nginx 解决
打开 /usr/local/php/etc/php-fpm.conf 调大以下两个参数(根据服务器实际情况,过大也不行) <value name=”max_children”>5120&l ...
- 15、NFC技术:使用Android Beam技术传输文件
传输文件的API 从Android4.1开始,NfcAdapter类增加了如下两个推送数据的方法. NfcAdapter.setBeamPushUris NfcAdapter.setBeamPushU ...