tableView的单选问题
在我们开发的过程中,很多时候用到tableview的单选问题,具体就是我们点击某个cell后面显示对号,再次点击对号消失.如果我们只是单纯的添加对号,就会导致cell从复用池里面取的时候,后面的对号也会自动的添加上,这就与我们的初衷相违背,那么我们要怎么做呢;下面我就来介绍一种简单的单选问题的解决方案
原理:
首先建一个可变数组,数组里面存储的数据是用来标记cell的选择状态,0代表没有被选择,1代表被选择
数组的数据的个数和cell上添加的数据的个数保持一致
值得注意的是:
1:点击的时候,先判断对应的存放标识的数组,如果是0说明我们点击的是一个新的cell,此时我们就要将数组里面所有的数换成0然后执行点击某个将某个替换成1的操作
2:当点击的是1的时候就不需要,直接将1替换成0就可以了
3:选择完成之后我们需要刷新一些tableview就可以了
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];if ([tagArray[indexPath.row] isEqualToString:@"0"]) {NSInteger number = tagArray.count;[tagArray removeAllObjects];for (int i = 0; i < number; i++) {[tagArray addObject:@"0"];}cell.accessoryType = UITableViewCellAccessoryCheckmark;[tagArray replaceObjectAtIndex:indexPath.row withObject:@"1"];[tableView reloadData];} else if ([tagArray[indexPath.row] isEqualToString:@"1"]) {[tagArray replaceObjectAtIndex:indexPath.row withObject:@"0"];cell.accessoryType = UITableViewCellAccessoryNone;}}
然后 在cell的创建里面,我们需要对对应的标识数组进行判断,然后我们判断其是否被选择
if ([tagArray[indexPath.row] isEqualToString:@"0"]) {cell.accessoryType = UITableViewCellAccessoryNone;} else {cell.accessoryType = UITableViewCellAccessoryCheckmark;}
这样我们就完成了简单的单选
解决这类问题还有其他的方法,比如我们在对cell进行赋值的时候.我们用的是model.那么此时我们就可以在model里面添加一条新的属性,这个属性专门是用来标记cell的选择状态
转载于:https://www.cnblogs.com/nsjelly/p/4512251.html
tableView的单选问题相关推荐
- CrossApp 官方Demo
Demo说明: Demo主要包含了CAScrollView.CATableView.CATabBarController.CANavigationController较为复杂的类的基本用法,同时也包含 ...
- iphone 开发,全区索引
小僧所知道得cocoaChinese已上線作品: 佛曰: 排名不分先後 考慮到當前國情, 以下所有iTunes鏈接全部清一色為美國地區 為省時起見, 作格式說明: 以dr大大得最新作iFighter ...
- swif之Tableview的使用、cell动态高度、侧滑删除、设置中心、个人中心、cell多选、cell单选
1:当创建UITableViewCell的时候使用Auto Layout布局子视图,添加对应的约束( leading, top, trailing and bottom constraints) 2: ...
- iOS TableView多级列表
代码地址如下: http://www.demodashi.com/demo/15006.html 效果预览 一.需求 TableView多级列表:分级展开或合并,逐级获取并展示其子级数据,可以设置最大 ...
- ios cell点击对勾_带图像和对勾的iOS自定义TableView
ios cell点击对勾 In this tutorial, we'll be developing an iOS Application that contains a custom TableVi ...
- swift 选中长按项_Swift TableView 的多选复选实现
本来是不想贴出来这篇文章的,因为这种东西实现起来实在是没有什么技术难度.之所以写出来是因为之前 OC 造的轮子,Swift 又造了一遍,顺便就写了吧,记录下. 实现 TableView 的复选主要有三 ...
- Android CheckedTextView 实现单选与多选
以下demo 地址 单选与双选实现的效果如下 CheckedTextView 继承的是 TextView 实现 Checkable 具有TextView 的属性 一般使用结合ListView xml ...
- MFC控件编程之复选框单选框分组框
MFC控件编程之复选框单选框分组框 一丶分组框 分组框 英文叫做 GroubBox 添加了分组框主要就是分组.好看.不重点介绍 二丶单选框 英文: Raido Button 单选框需要注意的事项 1. ...
- 知识点回顾-简单的TableView单组数据展示/多组数据展示
1 拖入TableView到UIView中,连线DataSource 2 3 1.实现数据源方法 4 - (NSInteger)tableView:(UITableView *)tableView n ...
最新文章
- cytoscape绘图互作网络图(二)
- 揭秘7大AI学习板块,这个星球推荐你拥有
- 人大金仓数据库sql语句_人大金仓数据库总结(SQL和JDBC)
- mysql数据库备份工具expdb,使用expdp完成自动备份数据库案例以及遇到的问题
- 【渝粤教育】电大中专幼儿园课程论 (1)作业 题库
- 戴尔电脑开机黑屏怎么办_笔记本电脑开机黑屏怎么办
- (18)Zynq FPGA 看门狗定时器介绍
- js获取css文件中的样式
- postgresql 客户端启动配置
- 计算机网络基础之广域网
- SSM框架 基于Bootstrap fileinput 实现文件上传功能
- java number比较大小_JAVA Number与Math类
- 基于华为鲲鹏云的c语言程序设计,华为DevRun第四讲,华为云鲲鹏云服务移植快速入门与实践...
- SCI论文并没有想像中的难写,发表SCI论文的小技巧。2012年和2013年SCI期刊论文和EI期刊论文
- Java 中怎么打印数组?
- 海康工业相机Python调用实现拍照
- 第五项修炼--学习型组织的艺术与实践
- 一个永久免费的图片鉴黄api接口
- Dubbo源码解析 —— Router
- 在线计算机推理,UCAT考试——定量推理部分指南
热门文章
- 【Linux网络编程】TCP编程
- mysql分片库分页查询_mysql数据库分页查询优化
- sql数据库和mysql有什么区别_【数据库】MySQL和sql的区别有哪些 - 收获啦
- 如何制作印章_电子公章怎么制作
- 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释
- C++学习笔记-----在重载的赋值运算函数中调用拷贝构造函数
- 用python实现TCP协议传输功能(服务端代码)
- nginx訪問php配置,thinkphp5配置nginx访问
- Windows平台下 vscode清理Java工程项目的缓存、相关快捷键设置
- c++-initializer_list