美文网首页
TableView展开与回收

TableView展开与回收

作者: 游循子墨 | 来源:发表于2016-09-30 14:53 被阅读143次
    TableView展开与回收

    功能比较简单,简单的TableView展开与回收

    一、HeadView.m中

    1.实现加载xib文件的方法

    +(HeadView *)instanceHeadView

    {

    NSArray* nibView =  [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil];

    return [nibView objectAtIndex:0];

    }

    2.根据头部视图打开状态,旋转箭头

    - (void)setOpen:(BOOL)Open{

    NSLog(@"%d",Open);

    if (Open) {

    [UIView animateWithDuration:0.25

    animations:^{

    self.RightArrrow.transform = CGAffineTransformMakeRotation(M_PI_2);

    }];

    }else{

    [UIView animateWithDuration:0.25

    animations:^{

    self.RightArrrow.transform = CGAffineTransformMakeRotation(0);

    }];

    }

    }

    二、ViewController.m中

    1.headview的点击方法

    - (void)action_tap:(UIGestureRecognizer *)tap {

    NSString *section = [NSString stringWithFormat:@"%ld",tap.view.tag - 300];

    HeadView*headview =(HeadView*) tap.view;

    if ([dic[section] integerValue] == 0) {[dic setObject:@"1" forKey:section];

    headview.Open = YES;

    }else{//反之关闭cell[dic setObject:@"0" forKey:section];

    headview.Open = NO;

    }[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:[section integerValue]] withRowAnimation:UITableViewRowAnimationFade];//有动画的刷新}

    demo地址:https://github.com/youweikang/TableView-.git

    这里面曾经遇到过2个坑,聊作记录

    1.第1个section的row的数据不能影响第0个section的row的数据;(不能互相干扰,否则刷新列表崩溃)

    2.头部视图加载方法不能放在

    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section里。我知道你们没遇到过。

    相关文章

      网友评论

          本文标题:TableView展开与回收

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