先看下效果图

直接上代码

#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篇—UITableview控件基本使用

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

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

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

iOS开发UI篇—核心动画&lpar;UIView封装动画&rpar;

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

iOS开发UI篇—核心动画&lpar;关键帧动画&rpar;

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

iOS开发UI篇—核心动画&lpar;基础动画&rpar;

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

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

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

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

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

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

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

iOS开发UI篇—Button基础

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

随机推荐

Empire C:Basic 4

一.变量名 1.名字由字母和数字组成,但其第一个字符必须为字母. 2.变量名不要以下划线开头. 3.变量名使用小写字母,符号常量名全部使用大写字母. 二.数据类型及长度 1.char 字符型 占用一个 ...

WPF异步调用WCF服务

wpf调用wcf时,第一次访问总耗时到达几秒,影响界面的用户体验,因此在wpf加载界面和加载数据时采用异步加载,即异步访问wcf服务, 由于是否采用异步加载和服务端无关,仅仅由客户端自己根据需要来选择 ...

C&num;获取QQ旋风的下载记录

/* * 用户:从前的我 * 日期:2015/8/26 */ using System; using System.IO; namespace GetXf { class Program { publ ...

progressBar的使用

<?xml version="1.0" encoding="utf-8"?>

python 中 list 的各项操作

最近在学习 python 语言.大致学习了 python 的基础语法.觉得 python 在数据处理中的地位和它的 list 操作密不可分. 特学习了相关的基础操作并在这里做下笔记. ''' Pyth ...

less的安装和使用

资料: https://www.cnblogs.com/starof/p/5226739.html

a 标签实现分享功能

在网页中,经常会用到分享功能,例如分享到qq,分享到微信,分享到微博等,但是怎么实现呢?一直没有想清楚这个问题,觉得好高大上的样子,于是在网上找了一些资料,也没有看出个什么所以然来: 于是有些心急了, ...

转载:实现MATLAB2016a和M文件关联

转载自http://blog.csdn.net/qq_22186119 新安装MATLAB2016a之后,发现MATLAB没有和m文件关联 每次打开m文件后都会重新打开一次MATLAB主程序 后来发现 ...

ssm的架构及整合说明

SSM,即 SpringMVC.Spring 与 MyBatis 三个框架 它们在三层架构中所处的位置是不同的,即它们在三层架构中的功能各不相同,各司其职 SpringMVC:作为 View 层的实现 ...

HTML5 Canvas &lpar; 图形变换矩阵 &rpar; transform&comma; setTransform

...

android tableview实现多选功能,iOS开发UI篇-tableView在编辑状态下的批量操作(多选)...相关推荐

  1. iOS开发UI篇-在UItableview中实现加载更多功能

    iOS开发UI篇-在UItableview中实现加载更多功能 一.实现效果 点击加载更多按钮,出现一个加载图示,三秒钟后添加两条新的数据. 二.实现代码和说明 当在页面(视图部分)点击加载更多按钮的时 ...

  2. iOS开发UI篇—简单介绍静态单元格的使用

    iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...

  3. iOS开发UI篇—实现UITableview控件数据刷新

    iOS开发UI篇-实现UITableview控件数据刷新 一.项目文件结构和plist文件 二.实现效果 1.说明:这是一个英雄展示界面,点击选中行,可以修改改行英雄的名称(完成数据刷新的操作). 运 ...

  4. iOS开发UI篇—实现一个私人通讯录小应用(一)

    iOS开发UI篇-实现一个私人通讯录小应用(一) 一.该部分主要完成内容 1.界面搭建                        2.功能说明 (1).只有当账号和密码输入框都有值的时候,登录按钮 ...

  5. iOS开发UI篇—UITableviewcell的性能优化和缓存机制

    iOS开发UI篇-UITableviewcell的性能问题 一.UITableviewcell的一些介绍 UITableView的每一行都是一个UITableViewCell,通过dataSource ...

  6. iOS开发UI篇—CALayer简介

    iOS开发UI篇-CALayer简介 一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实UI ...

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

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

  8. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇-使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

  9. iOS开发UI篇—UITableview控件使用小结

    iOS开发UI篇-UITableview控件使用小结 一.UITableview的使用步骤 UITableview的使用就只有简单的三个步骤: 1.告诉一共有多少组数据 方法:- (NSInteger ...

最新文章

  1. 机器学习数据预处理之缺失值:后向填充
  2. ROS探索总结(四)(五)(六)——简单的机器人仿真 创建简单的机器人模型smartcar 使用smartcar进行仿真
  3. gulp html 压缩,gulp-gzip压缩
  4. IDEA:No SLF4J providers were found.
  5. jquery 设置select的默认值
  6. python有几大模块_Python的几个常用模块
  7. 浏览器下载文件时一共发送2次请求,如何把“下载次数”只记录为1次?
  8. javap 指令集 (转)
  9. python代码段_python代码段有哪些
  10. 【tool】构造朴实的测试用例
  11. 转:计算机视觉专业词汇(中英文对照)
  12. 在Linux下安装rarlinux
  13. erphpdown最新版下载v11.12,WordPress内容付费插件
  14. java前后端分离解决session,解决前后端分离开发sessionId不一致问题
  15. 有趣的Javascript:只需一个JS让万恶的IE5、IE6、IE7、IE8全都支持H5原生Canvas绘图(有演示demo)
  16. U盘装系统,免设置bios(非pe镜像启动)
  17. matlab中进行拟合自定义形式的函数
  18. flume1.9 用户指南(中文版)
  19. Canvas 从 0 到 1 -- 开发 2D 游戏《保卫家园》-- 【上篇】
  20. 量子计算机技术难,量子计算机是什么工作原理运行的?现在制造还存在什么技术上的难...

热门文章

  1. php c接口,type-c接口什么意思?
  2. leetcode----1447.最简分数(辗转相除法求最大公约数)
  3. item在C语言中是什么意思中文,英语item的中文是什么意思
  4. 关于计算机与智能感想,对智能仪器的认识与感想.docx
  5. MVS论文阅读笔记[PatchmatchNet: Learned Multi-View Patchmatch Stereo]
  6. 最新的国内手机号码匹配,包括14年新增的17开头的号段
  7. golang 分析调试高阶技巧
  8. 数组的应用--最值问题
  9. PMP考试计算题汇总
  10. 阿里EasyExcel小数点精度问题和无故多了个.0