iOS tableview cell 的展开收缩
iOS tableview cell 的展开收缩
#import "ViewController.h"
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>{
NSMutableArray *_allArray;//创建一个数据源数组
NSMutableDictionary *dic;//创建一个字典进行判断收缩还是展开
}
@property (nonatomic,strong)UITableView *tableView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
dic = [NSMutableDictionary dictionary];
_allArray = [@[@[@"12",@"32",@"12",@"12",@"12",@"32"],@[@"12",@"12",@"12",@"32",@"12",@"12",@"12",@"32",@"12",@"12",@"12",@"32"],@[@"12",@"12",@"32"]]mutableCopy];
[self.view addSubview:self.tableView];
}
//懒加载
- (UITableView *)tableView{
if (!_tableView) {
_tableView = [[UITableViewalloc]initWithFrame:CGRectMake(0, 64, 375, 667 - 64)style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
}
return _tableView;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView{
return _allArray.count;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 30;
}
//
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *view = [UIView new];
view.backgroundColor = [UIColor redColor];
//创建一个手势进行点击,这里可以换成button
UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc]initWithTarget:self action:@selector(action_tap:)];
view.tag = 300 + section;
[view addGestureRecognizer:tap];
return view;
}
- (void)action_tap:(UIGestureRecognizer *)tap{
NSString *str = [NSStringstringWithFormat:@"%ld",tap.view.tag - 300];
if ([dic[str] integerValue] == 0) {//如果是0,就把1赋给字典,打开cell
[dic setObject:@"1" forKey:str];
}else{//反之关闭cell
[dic setObject:@"0" forKey:str];
}
// [self.tableView reloadData];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:[str integerValue]]withRowAnimation:UITableViewRowAnimationFade];//有动画的刷新
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSString *string = [NSStringstringWithFormat:@"%ld",section];
if ([dic[string] integerValue] == 1 ) { //打开cell返回数组的count
NSArray *array = [NSArrayarrayWithArray:_allArray[section]];
return array.count;
}else{
return 0;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 35;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleValue1reuseIdentifier:@"cell"];
}
cell.backgroundColor = [UIColor orangeColor];
cell.textLabel.text = _allArray[indexPath.section][indexPath.row];
return cell;
}
@end
iOS tableview cell 的展开收缩的更多相关文章
- [IOS Tableview] cell自定义view显示错误问题
问题介绍:按照tableviewcell的tag自定义cell的view显示的时候,会出现拖动时显示错误情况(在Tableview的范围超出屏幕范围需要滑动的情况下). 我做的是一个下载界面,我为了简 ...
- 点击UITableView的cell展开收缩
在项目中有个需求,点击表视图的单元格展开,再点击另外一个单元格或者本身又收缩,经过一段时间尝试,实现了该功能,现在记录分享总结下. 首先要理解UITableView代理方法调用的先后顺序. 当 ...
- iOS - (TableView中利用系统的 cell 设置 cell.textlabel 位置和大小)
今天工作稍微的遇到了一点小小的难题,需求效果中 TableView cell 中的 Label 字体大小比原先系统中的要大些且 Label 位置不是在前面,而是在中间往后,对于这个问题我第一时间也是想 ...
- iOS TableView多级列表
代码地址如下:http://www.demodashi.com/demo/15006.html 效果预览 ### 一.需求 TableView多级列表:分级展开或合并,逐级获取并展示其子级数据,可以设 ...
- SlickGrid example 5:带子项的展开收缩
带子项的展开收缩. 代码: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Ty ...
- ios tableview 上加 textfiled
ios tableview 上加 textfiled 首先附上我项目中用曾经用到的几张图 并说明一下我的用法: 图1: 图2: 图3: 心在你我说一下 我当初的实现 方法 ,希望能给你们一些 启 ...
- iOS解决cell重用问题
在写sina 微博界面的过程中使用到了cell,那么就是在cell上添加一些控件,但是由于每条微博的内容都是不同的,所以在显示的过程中,出现了内容重叠的问题,其实就是UITableViewCell重用 ...
- 修改mui accordion(折叠面板)默认展开收缩行为
mui的折叠面板 accordion 默认展开收缩逻辑是,展开其中一个的同时收缩起同级已经展开的元素. 实际需求:展开其中一个不必收缩同级元素. 分析mui.js源代码: window.addEven ...
- iOS 在cell中使用倒计时的处理方法(新)
一.前言 之前的文章iOS 在cell中使用倒计时的处理方法得到大量的支持, 在这先感谢大家的支持. 但是也收到不少人的回复表示不会用, 需要一一解答, 由于之前写的时候没有使用Markdown编辑, ...
随机推荐
- 除了上万的月薪之外,还有什么理由让我们必须学Python?
虽然目前的编程语言有很多,但是基础语法上的概念,本质上都是相通的.可以做到一通百通.所以没有必要为了学哪门语言纠结太多. python是目前市面上,我个人认为是最简洁&&最优雅& ...
- flutter 上传图片 image_picker 的使用
Github地址: https://github.com/flutter/plugins/tree/master/packages/image_picker packages地址: https://p ...
- 检查sql对象是否存在
SQL Server判断对象是否存在 1 判断数据库是否存在 Sql代码 if exists (select * from sys.databases where name = '数据库名') ...
- Jedis集成到项目中
Jedis整合到项目中,就可以在项目中使用redis了,作为Java程序狗,这个可以会,贴代码了,不截图了,哈哈 一.maven中的pom.xml中添加依赖 <dependency> &l ...
- Android自动化测试之Monkey
本来是做Web后端的,来公司实习变成微信小程序前端了,到这周变成Android APP测试人员了,也是微醺啊. 由于对手工测试终究是有些抵触,所有昨天小试了一下不用写代码的自动化压力测试,在此记下我的 ...
- gulp(1) 的使用
1.安装node.js 2.全局安装gulp.js npm install gulp -g 3.在项目本地根目录再安装(通过黑窗口安装)npm install --save-dev gulp/ 或者 ...
- 笔试算法题(10):深度优先,广度优先以及层序遍历 & 第一个仅出现一次的字符
出题:要求实现层序遍历二元搜索树,并对比BFS与DFS的区别 分析:层序遍历也就是由上至下,从左到右的遍历每一层的节点,类似于BFS的策略,使用Queue可以实现,BFS不能用递归实现(由于每一层都需 ...
- 用LAMP构架创建DISCUZ论坛
# rpm -q httpd mariadb mariadb-server php php-mysql # yum -y install httpd mariadb-server php php-my ...
- 关于java post get请求Demo (请求c#iis接口)
废话不多说,直接上代码 package dxq.httpGetDemo; import java.io.ByteArrayOutputStream; import java.io.InputStrea ...
- Installing Zabbix 3.2 in Centos 6.8 Clean Install Dependencies Errors
ZABBIX Forums > Zabbix Discussions and Feedback > Zabbix Troubleshooting and Problems > Ins ...