当前位置: 首页 > news >正文

tableView选择多项或单选

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

多选

第一步:初始化model加入可变数组

- (void)initWithData {
    _dataArray = [NSMutableArray arrayWithCapacity:1];
    
    for (int i=0; i<20; i++) {
        SelectedModel *sModel = [[SelectedModel alloc] init];
        sModel.title = [NSString stringWithFormat:@"%d", i];
        sModel.isSelected = NO;
        [_dataArray addObject:sModel];
    }
    
}

第二步:在代理中实现选中取消选中的状态

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    SelectedModel *model = _dataArray[indexPath.row];
    model.isSelected = !model.isSelected;
    [_dataArray replaceObjectAtIndex:indexPath.row withObject:model];
    [self.myTableView reloadData];
}

单选

与多选的区别在于代理方法的处理不同

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    if (_lastIndex != -1) {
        SelectedModel *sModel = _dataArray[_lastIndex];
        sModel.isSelected = NO;
        [_dataArray replaceObjectAtIndex:_lastIndex withObject:sModel];
    }
    
    _lastIndex = indexPath.row;
    SelectedModel *model = _dataArray[indexPath.row];
    model.isSelected = YES;
    [_dataArray replaceObjectAtIndex:indexPath.row withObject:model];
    [self.myTableView reloadData];
    
}

 

转载于:https://my.oschina.net/u/2519763/blog/844462

相关文章:

  • ip_conntrack table full dropping packet解决方案
  • Oracle for 循环
  • c++免注册大漠插件
  • 求上限值的整数勾股数
  • 微信小程序把玩(二十二)action-sheet组件
  • Python爬虫入门六之Cookie的使用
  • mysql学习笔记(二)--- MySQL数据类型
  • 【转】 android中的文件操作详解以及内部存储和外部存储
  • 03、常用类解析
  • 跟小博老师一起学JSP ——简介与工作原理
  • mysql中InnoDB引擎中页的概念
  • C# TCP多线程服务器示例
  • PyYAML序列化yaml文件数据
  • Node 7.6默认支持Async/Await
  • 基础数据结构-二叉树-拓展:基于数组存储的构建
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【技术性】Search知识
  • css选择器
  • Docker: 容器互访的三种方式
  • gitlab-ci配置详解(一)
  • iOS 系统授权开发
  • java第三方包学习之lombok
  • js递归,无限分级树形折叠菜单
  • MD5加密原理解析及OC版原理实现
  • Spring Boot MyBatis配置多种数据库
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 七牛云假注销小指南
  • 三分钟教你同步 Visual Studio Code 设置
  • 十年未变!安全,谁之责?(下)
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • Nginx实现动静分离
  • ​2021半年盘点,不想你错过的重磅新书
  • ​卜东波研究员:高观点下的少儿计算思维
  • # Panda3d 碰撞检测系统介绍
  • #stm32驱动外设模块总结w5500模块
  • $(function(){})与(function($){....})(jQuery)的区别
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (七)c52学习之旅-中断
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转载)Google Chrome调试JS
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .Net 垃圾回收机制原理(二)
  • .NetCore部署微服务(二)
  • .sh 的运行
  • @angular/cli项目构建--http(2)
  • [ 第一章] JavaScript 简史
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下