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

实现效果

相关推荐
biuyyyxxx27 分钟前
Power Query学习笔记(一)
笔记·学习
淡忘旧梦2 小时前
词错误率/WER算法讲解
人工智能·笔记·python·深度学习·算法
Dream Algorithm2 小时前
POS机的机制,以及流量是怎么传送的
笔记
狐572 小时前
2026-01-21-牛客每日一题-静态区间和(前缀和)
笔记·算法
佳哥的技术分享2 小时前
Function<T, R> 中 apply,compose, andThen 方法总结
java·学习·r语言
Yu_Lijing3 小时前
基于C++的《Head First设计模式》笔记——状态模式
c++·笔记·设计模式
阳明Coding3 小时前
golang从入门到通天—数据库操作(gorm框架使用)(最简单最详细的golang学习笔记)
笔记·学习·golang
AI视觉网奇3 小时前
ue5 开发 web socket server 实战2026
c++·学习·ue5
嗯嗯=3 小时前
STM32单片机学习篇6
stm32·单片机·学习
2301_797312263 小时前
学习Java42天
java·开发语言·学习