首页 > 程序开发 > 移动开发 > 其他 > 正文
100行代码实现tableViewCell折叠
2017-08-11 10:36:00       个评论    来源:IBMBoss的博客  
收藏    我要投稿

100行代码实现tableViewCell折叠

#import "ViewController.h"

@interface ViewController ()

{

NSArray *dataArr;

NSMutableArray *isOpenArr;

}

@property (nonatomic,strong)UITableView *tableview;

@property (nonatomic,assign)BOOL openFlag;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

_tableview = [[UITableView alloc]initWithFrame:CGRectMake(0, 40, self.view.frame.size.width, self.view.frame.size.height-40)];

_tableview.delegate =self;

_tableview.dataSource = self;

_tableview.tableFooterView = [[UIView alloc]init];

[self.view addSubview:_tableview];

dataArr = [NSArray array];

dataArr = @[@"A",@"B",@"C",@"D",@"E"];

isOpenArr = [NSMutableArray array];

for (int i =0; i< dataArr.count; i++) {

[isOpenArr addObject:@"0"];

}

}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

return 5;

}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

if([isOpenArr[section] isEqualToString:@"1"])

{

return dataArr.count;

}else{

return 0;

}

}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

NSString *cellstr = @"cell";

UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellstr];

if (!cell) {

cell = [tableView dequeueReusableCellWithIdentifier:cellstr forIndexPath:indexPath];

}

cell.textLabel.text = dataArr[indexPath.row];

return cell;

}

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

{

return 50;

}

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

{

UIControl *view = [[UIControl alloc] initWithFrame:CGRectMake(0, 0,self.view.frame.size.width, 50)];

view.backgroundColor = [UIColor colorWithRed:0.849 green:0.195 blue:0.258 alpha:0.7];;

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 4, 70, 30)];

label.textColor = [UIColor colorWithRed:1.000 green:0.985 blue:0.996 alpha:1.000];

label.font = [UIFont systemFontOfSize:14];

label.text = [NSString stringWithFormat:@"第%ld行",section];

[view addSubview:label];

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(topgesture:)];

[view addGestureRecognizer:tap];

view.tag = section;

return view;

}

-(void)topgesture:(UITapGestureRecognizer*)tap

{

NSInteger index = tap.view.tag;

if ([isOpenArr[index] isEqualToString:@"1"]) {

[isOpenArr replaceObjectAtIndex:index withObject:@"0"];

}else{

[isOpenArr replaceObjectAtIndex:index withObject:@"1"];

}

[_tableview reloadData];

}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

[_tableview deselectRowAtIndexPath:indexPath animated:YES];

}

点击复制链接 与好友分享!回本站首页
上一篇:wifi驱动的ARM平台移植问题(error: unknown field 'testmode_cmd' specified in initializer)
下一篇:AS混淆之transformClassesAndResourcesWithProguardForRelease
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站