广告
返回顶部
首页 > 资讯 > 移动开发 >iOS实现单元格折叠
  • 779
分享到

iOS实现单元格折叠

iOS单元格折叠 2022-06-04 05:06:15 779人浏览 泡泡鱼
摘要

本文实例为大家分享了iOS实现单元格折叠的具体代码,供大家参考,具体内容如下 折叠的核心是单元格的行数或列数实时变化 比较重要的步骤有: 设置数组 (可变数组,用于更新单元格内容)

本文实例为大家分享了iOS实现单元格折叠的具体代码,供大家参考,具体内容如下

折叠的核心是单元格的行数或列数实时变化

比较重要的步骤有:

设置数组 (可变数组,用于更新单元格内容)

调用方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { (来获取被选中的单元格) 比如我们定义这个tableView 叫做littletableView NSIndexPath *row = [self.littletableView indexPathForSelectedRow]; 上面这个代码用来获取 被选中的单元格的indexPath。

如何将选中的单元格内容与第一个单元格内容互换

比如我们现在有一个数组 1 2 3 4 5 我们选中了4 把4用[array insertObject: array [indexPath.row] atIndex:0];这个方法提到1的前面 变成了 4 1 2 3 4 5,此时第二个4的索引加了1 我们在删除时 [array removeObjectAtIndex:indexPath.row+1];索引要加1

改变tableView的大小 (这是非常重要的一点,如果你的tableView的frame不够,你即使给他设置10列10行,他也不会改变,因为一旦无法容纳,将不执行定义cell的方法(亲测)

下面是一步一步如何实现

在视图控制器的.h文件中,设置俩个UItableView的属性以及一个布尔值来判断单元格是否展开,设置一个可变数组保存单元格的标题信息。

在viewDidLoad里将他们初始化设置代理,设置tag值

在实现协议方法时,根据不同的tag值,对应不同方法体 例如:


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
 if (tableView.tag == 101) {
 return 1;
 } else {
 if (cellisOpen == NO) {
  return 1;
 } else {
  return 4;
 }
 }
}

//注意没有设置代理,这些方法将不执行

在没有展开时,小单元格的行数为1(我们假设只有一组,行数发生变化),所以


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
 if (tableView.tag == 101) {
 return 1;
 } else {
 return 4;
 }
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
 if (tableView.tag == 101) {
 return 1;
 } else {
 if (cellisOpen == NO) {
  return 1;
 } else {
  return 4;
 }
 }
}

在创建单元格的函数里,也要区分tag和布尔变量不同的情况的方法体

需要注意的是,在创建时,没有展开的单元格让其一直显示数组的第一个元素

接下来是最后一个很关键的函数


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"进入此函数");
 NSIndexPath *row = [self.littletableView indexPathForSelectedRow];
 [arrayrows insertObject:arrayrows[row.row] atIndex:0]; //arrayrows是存储单元格信息的数组
 NSLog(@"%@",arrayrows[row.row]); //我们来打印一下选中的单元格
 [arrayrows removeObjectAtIndex:row.row+1]; // 删除时选中的单元格索引加1
 for (int i = 0; i < 4; i++) {
 NSLog(@"%@",arrayrows[i]);
 }
 if (tableView.tag == 102) {
 if (cellisOpen == NO) {
 cellisOpen = YES; //更改折叠判断的布尔变量
 } else {
  cellisOpen = NO;//更改折叠判断的布尔变量
 }
 }
 if (cellisOpen == YES) {
 littletableView.frame = CGRectMake(280, 85, 120, 160); // 更改单元格的大小
 } else {
 littletableView.frame = CGRectMake(280, 85, 120, 40);
 }
 NSLog(@"%d",cellisOpen); //打印此时布尔值
 [littletableView reloadData]; // 更新被点击的单元格信息

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

--结束END--

本文标题: iOS实现单元格折叠

本文链接: https://www.lsjlt.com/news/30394.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • iOS实现折叠单元格
    本文实例为大家分享了iOS实现折叠单元格的具体代码,供大家参考,具体内容如下 思路 点击按钮或cell单元格来进行展开收缩, 同时使用一个BOOL值记录单元格展开收缩状态。根据BOO...
    99+
    2022-05-29
    iOS 折叠 单元格
  • iOS实现单元格折叠
    本文实例为大家分享了iOS实现单元格折叠的具体代码,供大家参考,具体内容如下 折叠的核心是单元格的行数或列数实时变化 比较重要的步骤有: 设置数组 (可变数组,用于更新单元格内容) ...
    99+
    2022-06-04
    iOS 单元格 折叠
  • iOS实现列表折叠效果
    本文实例为大家分享了iOS实现列表折叠效果的具体代码,供大家参考,具体内容如下 实现列表折叠效果其实比较简单,点击列表头部的时候,把返回列表行数设为 0,就是收起列表;再次点击列表头...
    99+
    2022-05-26
    iOS 列表 折叠
  • iOS实现图片折叠效果
    本文实例为大家分享了iOS实现图片折叠效果的具体代码,供大家参考,具体内容如下 效果图: 结构布局:拖两个UIImageView到控制器,设置相同的frame和图片,再拖一个大的U...
    99+
    2022-05-15
    iOS 图片折叠
  • HTML5怎么实现折叠菜单
    这篇文章主要介绍“HTML5怎么实现折叠菜单”,在日常操作中,相信很多人在HTML5怎么实现折叠菜单问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTML5怎么实现折叠菜单”...
    99+
    2022-10-19
  • JavaScript如何实现折叠菜单
    这篇文章主要介绍了JavaScript如何实现折叠菜单,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 JavaS...
    99+
    2022-10-19
  • 纯css怎样实现多级折叠菜单折叠树效果
    这篇文章将为大家详细讲解有关纯css怎样实现多级折叠菜单折叠树效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。运用checkbox的checked值来判断下级栏目是否展开,CSS3的选择器中提供了:ch...
    99+
    2023-06-08
  • jquery如何实现折叠菜单效果
    这篇文章将为大家详细讲解有关jquery如何实现折叠菜单效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这是一个简单的折叠框效果实现,核心内容jQ库里的slideTog...
    99+
    2022-10-19
  • 怎么用CSS实现圆角折叠菜单
    本篇内容主要讲解“怎么用CSS实现圆角折叠菜单”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用CSS实现圆角折叠菜单”吧!代码如下:<html>...
    99+
    2022-10-19
  • iOS使用UICollectionView实现拖拽移动单元格
    目录一.介绍二.方法和步骤三.iOS9之后添加的API本文实例为大家分享了iOS开发UICollectionView拖拽移动单元格的具体代码,供大家参考,具体内容如下 一.介绍 iO...
    99+
    2022-11-13
  • Vue表格隐藏行折叠效果如何实现
    这篇“Vue表格隐藏行折叠效果如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue表格隐藏行折叠效果如何实现”文章吧...
    99+
    2023-07-06
  • 小程序如何实现多折叠展开菜单
    这篇文章主要讲解了“小程序如何实现多折叠展开菜单”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“小程序如何实现多折叠展开菜单”吧!小程序实现多折叠展开菜单效果展示:  开始正题  上方Nav ...
    99+
    2023-06-26
  • 如何使用纯CSS实现圆角折叠菜单
    小编给大家分享一下如何使用纯CSS实现圆角折叠菜单,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:<html>...
    99+
    2022-10-19
  • Android使用ExpandableListView实现三层嵌套折叠菜单
    前段时间项目的新功能里有些页面需要三层嵌套列表实现,虽然在移动端这种很丑,但是需求就是需求。 本来想用各种View嵌套,然后发现系统有个ExpandableListView。就直接...
    99+
    2022-11-12
  • iOS怎么使用UICollectionView实现拖拽移动单元格
    这篇“iOS怎么使用UICollectionView实现拖拽移动单元格”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“iOS怎...
    99+
    2023-06-30
  • slideToggle+slideup如何实现手机端折叠菜单效果
    这篇文章主要为大家展示了“slideToggle+slideup如何实现手机端折叠菜单效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“slideToggle+...
    99+
    2022-10-19
  • vue.js实现简易折叠面板
    本文实例为大家分享了vue.js实现简易折叠面板的具体代码,供大家参考,具体内容如下 代码如下: 主文件:app.vue <template> <div ...
    99+
    2022-11-12
  • 如何实现AmazeUI折叠面板
    这篇文章主要介绍了如何实现AmazeUI折叠面板,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Amaze UI 是一个针对 HTML 5 开发的轻量级、模块化、移动优先的跨屏...
    99+
    2023-06-09
  • Bootstrap如何实现可折叠分组侧边导航菜单
    小编给大家分享一下Bootstrap如何实现可折叠分组侧边导航菜单,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!效果图:源码:<!DOCTYPE html> <...
    99+
    2022-10-19
  • 怎么在html5中实现一个BUI折叠菜单插件
    本篇文章为大家展示了怎么在html5中实现一个BUI折叠菜单插件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一个点击显示隐藏的效果, 并且点击的时候, 会先把展开进行隐藏, 再展开自己的. 从界面...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作