美文网首页
分组折叠

分组折叠

作者: leaderleader | 来源:发表于2017-11-05 20:07 被阅读0次

    //  AppDelegate.m

    #import "ViewController.h"

    ViewController * theVc = [[ViewController alloc]init];

    UINavigationController * theNgc = [[UINavigationController alloc]initWithRootViewController:theVc];

    self.window.rootViewController = theNgc;

    viewController.m

    <UITableViewDelegate,UITableViewDataSource>

    {

    UITableView * theTable;

    NSMutableArray * theArr;

    NSMutableArray * arr1,*arr2,*arr3;

    NSMutableArray * allArr;

    NSMutableArray * arrForBtn;

    BOOL flag1,flag2,flag3;

    UIButton * theBtn1,*theBtn2,*theBtn3;

    }

    //========================

    theTable = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStyleGrouped];

    theTable.delegate = self;

    theTable.dataSource = self;

    [self.view addSubview:theTable];

    theArr = [NSMutableArray array];

    arr1 = [NSMutableArray arrayWithObjects:@"米老鼠",@"唐老鸭",@"汤姆", nil];

    arr2 = [NSMutableArray arrayWithObjects:@"么么",@"影响",@"黄飞鸿", nil];

    arr3 = [NSMutableArray arrayWithObjects:@"DS",@"DD",@"HH", nil];

    allArr = [NSMutableArray arrayWithObjects:arr1,arr2,arr3, nil];

    flag1 = 0;

    flag2 = 0;

    flag3 = 0;

    arrForBtn = [NSMutableArray array];

    //=======================

    -(CGFloat)tableView:(UITableView *)tableView estimatedHeightForHeaderInSection:(NSInteger)section{

    return 50;

    }

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

    UIButton * theBtn;

    UIView * theVc;

    switch (section) {

    case 0:

    {

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

    theBtn  = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    theBtn.frame = CGRectMake(10, 3, 70, 37);

    [theBtn setTitle:@"我的好友" forState:0];

    theBtn.tag = 0;

    }

    break;

    case 1:

    {

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

    theBtn  = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    theBtn.frame = CGRectMake(10, 3, 70, 37);

    [theBtn setTitle:@"同学" forState:0];

    theBtn.titleLabel.textAlignment = NSTextAlignmentLeft;

    theBtn.tag = 1;

    }

    break;

    case 2:

    {

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

    theBtn  = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    theBtn.frame = CGRectMake(10, 3, 100, 37);

    [theBtn setTitle:@"我的童年" forState:0];

    theBtn.tag = 2;

    }

    break;

    default:

    break;

    }

    [theBtn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

    [theVc addSubview:theBtn];

    return theVc;

    }

    -(void)click:(UIButton *)sender{

    if (arrForBtn.count > 0) {

    BOOL ff = 0;

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

    UIButton * theBtn = arrForBtn[i];

    if (theBtn.tag == sender.tag) {

    [arrForBtn removeObjectAtIndex:i];

    ff = 1;

    }

    }

    if (!ff) {

    [arrForBtn addObject:sender];

    }

    }else{

    [arrForBtn addObject:sender];

    }

    [theTable reloadData];

    }

    //分区

    -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return 3;

    }

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

    if (arrForBtn.count > 0) {

    for (UIButton *btn in arrForBtn) {

    if (btn.tag == section) {

    return [allArr[section] count];

    }

    }

    }

    return 0;

    }

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

    UITableViewCell * theCell = [tableView dequeueReusableCellWithIdentifier:@""];

    if (!theCell) {

    theCell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@""];

    }

    switch (indexPath.section) {

    case 0:

    {

    theCell.textLabel.text = arr1[indexPath.row];

    }

    break;

    case 1:

    {

    theCell.textLabel.text = arr2[indexPath.row];

    }

    break;

    case 2:

    {

    theCell.textLabel.text = arr3[indexPath.row];

    }

    break;

    default:

    break;

    }

    return theCell;

    }

    相关文章

      网友评论

          本文标题:分组折叠

          本文链接:https://www.haomeiwen.com/subject/fnuhmxtx.html