先看下效果图

直接上代码

#import "MyController.h"

@interface MyController ()
{
UIButton *button;
} @property(nonatomic,strong)NSMutableArray *array;//数据源 @property (nonatomic,strong)NSMutableArray *selectorPatnArray;//存放选中数据 @end @implementation MyController - (void)viewDidLoad {
[super viewDidLoad]; //添加数据源
for (int i = ; i < ; i++) {
NSString *str = [NSString stringWithFormat:@"第%d行",i + ];
[self.array addObject:str];
} button = [UIButton buttonWithType:(UIButtonTypeCustom)];
[button setTitle:@"选择" forState:(UIControlStateNormal)];
[button setTitleColor:[UIColor blackColor] forState:(UIControlStateNormal)];
button.frame = CGRectMake(, , , ); [button addTarget:self action:@selector(selectMore:) forControlEvents:(UIControlEventTouchUpInside)]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:button]; } - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} #pragma mark - Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return ;
} - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.array.count;
} - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *Identifier = @"myCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Identifier];
if (!cell) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:Identifier];
}
cell.textLabel.text = self.array[indexPath.row];    cell的selectionStyle不要设置为UITableViewSelectionStyleNone return cell;
} - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{ return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
} - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//选中数据
[self.selectorPatnArray addObject:self.array[indexPath.row]]; } - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
//从选中中取消
if (self.selectorPatnArray.count > ) { [self.selectorPatnArray removeObject:self.array[indexPath.row]];
} } #pragma mark - 点击事件 - (void)selectMore:(UIBarButtonItem *)action{
if ([button.titleLabel.text isEqualToString:@"选择"]) {
//移除之前选中的内容
if (self.selectorPatnArray.count > ) {
[self.selectorPatnArray removeAllObjects];
}
[button setTitle:@"确认" forState:(UIControlStateNormal)];
//进入编辑状态
[self.tableView setEditing:YES animated:YES];
}else{ [button setTitle:@"选择" forState:(UIControlStateNormal)];
     //对选中内容进行操作
NSLog(@"选中个数是 : %lu 内容为 : %@",(unsigned long)self.selectorPatnArray.count,self.selectorPatnArray);
//取消编辑状态
[self.tableView setEditing:NO animated:YES]; }
} #pragma mark -懒加载 -(NSMutableArray *)array{
if (!_array) {
_array = [NSMutableArray array];
}
return _array;
} - (NSMutableArray *)selectorPatnArray{
if (!_selectorPatnArray) {
_selectorPatnArray = [NSMutableArray array];
}
return _selectorPatnArray;
}

如果要把tableView在非编辑状态下不让点击,设置下这个属性,就OK了.

@property (nonatomic) BOOL allowsSelection NS_AVAILABLE_IOS(3_0);  // default is YES. Controls whether rows can be selected when not in editing mode

如果在某些情况下需要全选,可以按照这个思路:

        for (int i = ; i < self.array.count; i++) {
NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:];
UITableViewCell *cell = (UITableViewCell *)[self.tableView cellForRowAtIndexPath:path];
cell.selected = YES;
[self.selectorPatnArray addObject:self.array[i]];//添加到选中列表 }

这只是个人想法,欢迎指出不足......

iOS开发UI篇-tableView在编辑状态下的批量操作(多选)的更多相关文章

  1. iOS开发UI篇—UITableview控件基本使用

    iOS开发UI篇—UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) #import <Foundation/Foundation.h> ...

  2. iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建

    iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建 一.实现效果 说明:该示例在storyboard中使用动态单元格来完成. 二.实现 1.项目文件结构 ...

  3. iOS开发UI篇—核心动画(UIView封装动画)

    iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...

  4. iOS开发UI篇—核心动画(关键帧动画)

    转自:http://www.cnblogs.com/wendingding/p/3801330.html iOS开发UI篇—核心动画(关键帧动画) 一.简单介绍 是CApropertyAnimatio ...

  5. iOS开发UI篇—核心动画(基础动画)

    转自:http://www.cnblogs.com/wendingding/p/3801157.html 文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(基础动画) iOS ...

  6. iOS开发UI篇—核心动画简介

    转自:http://www.cnblogs.com/wendingding/p/3801036.html iOS开发UI篇—核心动画简介 一.简单介绍 Core Animation,中文翻译为核心动画 ...

  7. ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

    本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布 ...

  8. iOS开发UI篇—Quartz2D使用(绘制基本图形)

    iOS开发UI篇—Quartz2D使用(绘制基本图形) 一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 ...

  9. iOS开发UI篇—Button基础

    iOS开发UI篇—Button基础 一.简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 二.按钮的三种状 ...

随机推荐

  1. 【HDOJ】1258 Sum It Up

    典型的深搜,剪枝的时候需要跳过曾经搜索过的相同的数目,既满足nums[i]=nums[i-1]&&visit[i-1]==0,visit[i-1]==0可以说明该点已经测试过. #in ...

  2. GL_INTERFACE

    prompt ****************************************************************************** 总账接口主要完成其他模块的总 ...

  3. web项目测试方法总结

    在Web工程过程中,基于Web系统的测试.确认和验收是一项重要而富有挑战性的工作.基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览 ...

  4. [light oj 1013] Love Calculator

    1013 - Love Calculator Yes, you are developing a 'Love calculator'. The software would be quite comp ...

  5. Microsoft Azure File 服务简介

    我们非常高兴地宣布在微软Azure中国区推出 Microsoft Azure File 服务预览版.Azure File 服务使用标准 SMB 2.1 协议提供文件共享.Azure 中运行的应用程序现 ...

  6. iphone4s丢失如何找回

    iphone4s丢失如何找回 iphone4s手机丢了怎么办,其实苹果手机自带找回功能,但是前提你得打开了icloud这款软件. 方法/步骤 1 在手机的设置里找到icloud设置,如图. 2 点击进 ...

  7. __cdecl、__stdcall、__fastcall、thiscall 进栈、出栈区别

    https://en.wikipedia.org/wiki/X86_calling_conventions https://msdn.microsoft.com/en-us/library/984x0 ...

  8. aspx页面记住密码

    界面 点击登录按钮的代码 protected void btnLogin_Click(object sender, EventArgs e) { if (remember_long.Checked) ...

  9. lihgtoj 1006

    记忆化搜索下即可. #include<cstdio> #include<string> #include<cstring> #include<iostream ...

  10. Esper系列(十一)NamedWindow语法Merge、Queries、Indexing、Dropping

    On-Merge With Named Windows 功能:对window中的insert.update.delete操作进行组合运用. 格式: 1  "; 14      15  Sys ...