在我们开发的过程中,很多时候用到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的单选问题相关推荐

  1. CrossApp 官方Demo

    Demo说明: Demo主要包含了CAScrollView.CATableView.CATabBarController.CANavigationController较为复杂的类的基本用法,同时也包含 ...

  2. iphone 开发,全区索引

    小僧所知道得cocoaChinese已上線作品:  佛曰: 排名不分先後 考慮到當前國情, 以下所有iTunes鏈接全部清一色為美國地區 為省時起見, 作格式說明: 以dr大大得最新作iFighter ...

  3. swif之Tableview的使用、cell动态高度、侧滑删除、设置中心、个人中心、cell多选、cell单选

    1:当创建UITableViewCell的时候使用Auto Layout布局子视图,添加对应的约束( leading, top, trailing and bottom constraints) 2: ...

  4. iOS TableView多级列表

    代码地址如下: http://www.demodashi.com/demo/15006.html 效果预览 一.需求 TableView多级列表:分级展开或合并,逐级获取并展示其子级数据,可以设置最大 ...

  5. ios cell点击对勾_带图像和对勾的iOS自定义TableView

    ios cell点击对勾 In this tutorial, we'll be developing an iOS Application that contains a custom TableVi ...

  6. swift 选中长按项_Swift TableView 的多选复选实现

    本来是不想贴出来这篇文章的,因为这种东西实现起来实在是没有什么技术难度.之所以写出来是因为之前 OC 造的轮子,Swift 又造了一遍,顺便就写了吧,记录下. 实现 TableView 的复选主要有三 ...

  7. Android CheckedTextView 实现单选与多选

    以下demo 地址 单选与双选实现的效果如下 CheckedTextView 继承的是 TextView 实现 Checkable 具有TextView 的属性 一般使用结合ListView xml ...

  8. MFC控件编程之复选框单选框分组框

    MFC控件编程之复选框单选框分组框 一丶分组框 分组框 英文叫做 GroubBox 添加了分组框主要就是分组.好看.不重点介绍 二丶单选框 英文: Raido Button 单选框需要注意的事项 1. ...

  9. 知识点回顾-简单的TableView单组数据展示/多组数据展示

    1 拖入TableView到UIView中,连线DataSource 2 3 1.实现数据源方法 4 - (NSInteger)tableView:(UITableView *)tableView n ...

最新文章

  1. cytoscape绘图互作网络图(二)
  2. 揭秘7大AI学习板块,这个星球推荐你拥有
  3. 人大金仓数据库sql语句_人大金仓数据库总结(SQL和JDBC)
  4. mysql数据库备份工具expdb,使用expdp完成自动备份数据库案例以及遇到的问题
  5. 【渝粤教育】电大中专幼儿园课程论 (1)作业 题库
  6. 戴尔电脑开机黑屏怎么办_笔记本电脑开机黑屏怎么办
  7. (18)Zynq FPGA 看门狗定时器介绍
  8. js获取css文件中的样式
  9. postgresql 客户端启动配置
  10. 计算机网络基础之广域网
  11. SSM框架 基于Bootstrap fileinput 实现文件上传功能
  12. java number比较大小_JAVA Number与Math类
  13. 基于华为鲲鹏云的c语言程序设计,华为DevRun第四讲,华为云鲲鹏云服务移植快速入门与实践...
  14. SCI论文并没有想像中的难写,发表SCI论文的小技巧。2012年和2013年SCI期刊论文和EI期刊论文
  15. Java 中怎么打印数组?
  16. 海康工业相机Python调用实现拍照
  17. 第五项修炼--学习型组织的艺术与实践
  18. 一个永久免费的图片鉴黄api接口
  19. Dubbo源码解析 —— Router
  20. 在线计算机推理,UCAT考试——定量推理部分指南

热门文章

  1. 【Linux网络编程】TCP编程
  2. mysql分片库分页查询_mysql数据库分页查询优化
  3. sql数据库和mysql有什么区别_【数据库】MySQL和sql的区别有哪些 - 收获啦
  4. 如何制作印章_电子公章怎么制作
  5. 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释
  6. C++学习笔记-----在重载的赋值运算函数中调用拷贝构造函数
  7. 用python实现TCP协议传输功能(服务端代码)
  8. nginx訪問php配置,thinkphp5配置nginx访问
  9. Windows平台下 vscode清理Java工程项目的缓存、相关快捷键设置
  10. c++-initializer_list