【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];
}

实现效果

相关推荐
月初,15 分钟前
MongoDB学习和应用(高效的非关系型数据库)
学习·mongodb·nosql
casual_clover1 小时前
Android 之 kotlin 语言学习笔记四(Android KTX)
android·学习·kotlin
Love__Tay1 小时前
【学习笔记】Python金融基础
开发语言·笔记·python·学习·金融
90后的晨仔1 小时前
RxSwift 框架解析
前端·ios
半导体守望者1 小时前
ADVANTEST R3764 66 R3765 67爱德万测试networki connection programming网络程序设计手册
经验分享·笔记·功能测试·自动化·制造
我的golang之路果然有问题2 小时前
云服务器部署Gin+gorm 项目 demo
运维·服务器·后端·学习·golang·gin
Humbunklung2 小时前
Rust Floem UI 框架使用简介
开发语言·ui·rust
柠石榴2 小时前
【论文阅读笔记】《A survey on deep learning approaches for text-to-SQL》
论文阅读·笔记·深度学习·nlp·text-to-sql
qq_279456153 小时前
CADisplayLink、NSTimer、GCD定时器
macos·objective-c·cocoa
田梓燊3 小时前
数学复习笔记 27
笔记