首页 > 系统 > iOS > 正文

ios tableView 的cell打开收起功能,类似QQ中的cell折叠功能

2019-11-09 18:18:11
字体:
来源:转载
供稿:网友

通过点击sectionView实现section下属的cell关闭或打开,类似QQ联系人界面的功能。

#import "ViewController.h"#define ALLWIDTH [UIScreen mainScreen].bounds.size.width#define ALLHEIGHT [UIScreen mainScreen].bounds.size.height@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>{    UITableView*tableview;    NSArray *dataArr;    NSMutableArray *isOpenArr;    }@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        tableview = [[UITableView alloc]initWithFrame:CGRectMake(0, 40, ALLWIDTH, ALLHEIGHT-40)];    tableview.delegate =self;    tableview.dataSource = self;    tableview.tableFooterView = [[UIView alloc]init];    [self.view addSubview:tableview];            dataArr = [NSArray array];    dataArr = @[@"cell1",@"cell2",@"cell3",@"cell4",@"cell5"];        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{    UIView *view  =[[UIView alloc]init];    UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0,ALLWIDTH, 50)];    lable.text =  [NSString stringWithFormat:@"------------第%ld组---------",(long)section];    lable.textColor = [UIColor redColor];    [view addSubview:lable];        //添加点击手势    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];    NSLog(@"------================--%ld-----",indexPath.row);}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表