全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

iOS中的二级菜单及Cell的展开收起示例

最近又做了一个项目,涉及到二级菜单及cell的展开收起,这是我所做过的第三个项目中做这个功能了,我当然不能把公司的项目界面show出来,所以我重新创建一个工程,数据都写的是固定的数据。作为总结,记录实现过程,及要注意的一些点:如进来默认选中第一行,数据优化等。

先看看我们实现的效果:


基本UI布局思路:

1.将view分为左右两部分,左,右分别是一个tableView

2.点击左边的cell时候,刷新右边的数据

需要注意及处理的点有:

1.默认进来界面显示左边选中第一行,及对应右边的数据

2.每次点击左边的cell,右边都需要刷新数据,如果每次点击左边都要请求一次数据,那么会很消耗用户的流量

3.cell的展开收起我们通过cell 的高度变化实现

在这里主要罗列需要注意的那三点,功能的全部实现我已经提交到github,需要的伙伴,可以去下载https://github.com/mumuna/AboutCell

首先说明,一般类似这样的布局,后台提供接口,左边的tableview的数据源会是一个接口,左边的tableview的每个cell对应的右边的数据也是一个接口,但是不同的cell需要传入id请求获取对应的数据,这样每点击一个左边的cell就需要请求一次右边的数据。

1.初次进入界面默认显示左边第一行及对应的右边的数据,及数据优化

(1)首先获取到左边的tableview所需的数据及第一行对应的右边的数据
(2)其它cell对应的右边的数据我们在tableView didSelectRowAtIndexPath 方法中请求获得
(3)默认选中第一行

 //默认选中第一行
  NSIndexPath *ip=[NSIndexPath indexPathForRow:0 inSection:0];
  [leftTable selectRowAtIndexPath:ip animated:YES scrollPosition:UITableViewScrollPositionBottom];

(4)在tableView didSelectRowAtIndexPath 方法中,根据点击的左边的cell,请求右边的数据。我们不能每次点击都请求一次,这样很耗费用户的流量。

我们需要把右边的数据放在可变数组里arr,全部初始化arr = [NSMutable array];,每次点击,先判断arr.count ==0 ,如果!=0 再去请求数据,然后reload data。

2.cell的弹开和收起

在效果图中可以看到点击tableview的区的headerview,对应区的row会弹开收起。

(1)我们在获取数据的时候,创建一个数组,给每个区的headerview一个标志“0”,即默认为收起

//specificaArr是效果图中左边的cell英国,对应的右边的数据源
//flagArr是左边对每个区的标识
for (int i = 0; i<specificArr.count; i++) {
    [flagArr addObject:@"0"];
          }

(2)给headerview添加一个手势,且给headerview一个tag值方便在手势响应事件中知道我们具体点击的是哪个区

    view.tag = 100+section;
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(sectionClick:)];
    [view addGestureRecognizer:tap];

(3)在手势响应事件中根据headerview的标识选择展开还是收起row,且改变标识

-(void)sectionClick:(UITapGestureRecognizer *)tap{
//根据tag值获取点击的区
  int index = tap.view.tag%100;
//创建可变数据,存储所点击的区的所有行的indexpath,tableview刷新区对应的行,重新设置行高
  NSMutableArray *indexArray = [[NSMutableArray alloc]init];
  NSArray *arr = specificArr[index];
  for (int i = 0; i<arr.count; i++) {
    NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:index];
    [indexArray addObject:path];
  }
  //展开
  if ([flagArr[index] isEqualToString:@"0"]) {
    [flagArr replaceObjectAtIndex:index withObject:@"1"];
    [specificTable reloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationBottom];
  }else{
    [flagArr replaceObjectAtIndex:index withObject:@"0"];
    [specificTable reloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationBottom];
  }
}

(4)在tableView heightForRowAtIndexPath方法中设置tableview的高度

 if ([flagArr[indexPath.section] isEqualToString:@"0"]) {
      return 0;
    }else{
      return 96;
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# iOS  # 二级菜单展开收起  # iOS中的二级菜单收起  # Cell  # 展开收起  # iOS中Cell的Section展开和收起的示例代码  # iOS基于UITableView实现多层展开与收起  # 的是  # 是一个  # 需要注意  # 图中  # 弹开  # 这是  # 在这里  # 放在  # 都要  # 所需  # 要注意  # 英国  # 事件中  # 可以看到  # 做过  # 我所  # 再去  # 能把  # 三点  # 会很 


相关文章: 制作网站的公司有哪些,做一个公司网站要多少钱?  如何通过.red域名打造高辨识度品牌网站?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  制作公司内部网站有哪些,内网如何建网站?  如何高效完成独享虚拟主机建站?  ,有什么在线背英语单词效率比较高的网站?  如何高效完成自助建站业务培训?  如何通过虚拟机搭建网站?详细步骤解析  建站主机解析:虚拟主机配置与服务器选择指南  网站插件制作软件免费下载,网页视频怎么下到本地插件?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  如何高效利用200m空间完成建站?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  如何在阿里云购买域名并搭建网站?  详解jQuery中基本的动画方法  手机网站制作与建设方案,手机网站如何建设?  建站之星如何防范黑客攻击与数据泄露?  如何通过NAT技术实现内网高效建站?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  如何在腾讯云服务器快速搭建个人网站?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  学校为何禁止电信移动建设网站?  南京网站制作费用,南京远驱官方网站?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  css网站制作参考文献有哪些,易聊怎么注册?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  盘锦网站制作公司,盘锦大洼有多少5G网站?  建站之星安装提示数据库无法连接如何解决?  如何快速搭建安全的FTP站点?  如何快速搭建自助建站会员专属系统?  建站之星如何实现网站加密操作?  如何制作一个表白网站视频,关于勇敢表白的小标题?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  建站之星免费模板:自助建站系统与智能响应式一键生成  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  北京网站制作公司哪家好一点,北京租房网站有哪些?  建站之星备案流程有哪些注意事项?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  如何零基础开发自助建站系统?完整教程解析  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  如何在服务器上三步完成建站并提升流量?  建站之星下载版如何获取与安装?  定制建站流程步骤详解:一站式方案设计与开发指南  制作证书网站有哪些,全国城建培训中心证书查询官网?  如何用低价快速搭建高质量网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。