【iOS】折叠cell

目录

前言

原理

高度变化

选中单元格

实现效果


前言

暑假的3Gshare中使用了折叠cell,这篇博客来总结一下折叠cell的使用

原理

折叠cell的原理其实非常简单,就是动态地调整数据视图的高度,使数据视图可以展现的cell发生变化。并在点击选中某个单元格时,更改数据视图数据源,使得数据视图呈现出不同的单元格。

高度变化

下面给出代码来展示一下如何通过为按钮添加事件来控制数据视图高度的变化

objectivec 复制代码
- (void)tapfoldButton:(UIButton*)button  {
    if (!button.tag) {
        button.tag = 1;
        self.tableView.frame = CGRectMake(250, 210, 110, 120);
    } else {
        button.tag = 0;
        self.tableView.frame = CGRectMake(250, 210, 110, 30);
    }
}

选中单元格

当选中某个单元格时,添加事件改变数据视图数据源,将数据源数组最后一个元素删除,再将选中元素添加到数据源数组首,这样就可以实现更改数据视图呈现的单元格。

objectivec 复制代码
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    NSString* str = self.array[indexPath.row];
    [self.array removeObjectAtIndex:indexPath.row];
    [self.array insertObject:str atIndex:0];
    [self.tableView reloadData];
}

实现效果

相关推荐
无妄啊______9 分钟前
mysql笔记9(子查询)
数据库·笔记·mysql
Joeysoda28 分钟前
Java数据结构 时间复杂度和空间复杂度
java·开发语言·jvm·数据结构·学习·算法
z2014z40 分钟前
系统架构设计师教程 第5章 5.3 系统分析与设计 笔记
笔记·系统架构
island131443 分钟前
从 InnoDB 到 Memory:MySQL 存储引擎的多样性
数据库·学习·mysql
大母猴啃编程1 小时前
数据结构---非线性--树
c语言·数据结构·学习·算法·青少年编程
青石横刀策马1 小时前
泛读笔记:从Word2Vec到BERT
笔记·bert·word2vec
Magnetic_h3 小时前
【iOS】单例模式
笔记·学习·ui·ios·单例模式·objective-c
华清远见成都中心3 小时前
哪些人适合学习人工智能?
人工智能·学习
重生之我在20年代敲代码3 小时前
HTML讲解(二)head部分
前端·笔记·html·web app
天下无贼!3 小时前
2024年最新版TypeScript学习笔记——泛型、接口、枚举、自定义类型等知识点
前端·javascript·vue.js·笔记·学习·typescript·html