ios UItableView,UITableViewHeaderFooterView分组头部的重用机制,简单地仿射变换CGAffineTransform

 怎样设置包括第一栏在内相同高度的section(小技巧,虽然容易但容易忽略)

     *第一步,在viewdidload里将尾部设为0,table.sectionFooterHeight = 0;(代理方法)- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{

     return 0;

     }虽然也可以设置尾部高度,但是设置后没有效果

     第二步,调用tableView的代理方法- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{

     return 30;

     }设置头部高度为30;

     运行结果


自定义分组头部的重复利用(类似cell)

如果自定义分组头部

为了内存优化,可以使用类似cell的重用机制来实现


#pragma mark - 自定义分组头部

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

    static NSString * identy = @"headFoot";

    

    UITableViewHeaderFooterView * hf = [tableView dequeueReusableHeaderFooterViewWithIdentifier:identy];

    if (!hf) {

        NSLog(@"%li",section);

        hf = [[UITableViewHeaderFooterView alloc]initWithReuseIdentifier:identy];

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

        view.backgroundColor = [UIColor redColor];

        [hf addSubview:view]; (若将此注释:view未添加)

    }

//    hf.contentView.backgroundColor = [UIColor purpleColor];(去掉此行注释:可设置hf。contentView背景色),若此行和上一行都不注释,显示红色

    return hf;

}


仿射变换

- (void)clickAction{

    // 仿射变换

//    [UIView animateWithDuration:0.5 animations:^{

//        // 执行一次

            self.rectView.transform = CGAffineTransformMakeTranslation(100, 100);

//        // 在self.rectView.transform现在的基础上继续执行

            self.rectView.transform = CGAffineTransformTranslate(self.rectView.transform, 100, 100);

//    }];

//    

//    // 仿射比例

//    [UIView animateWithDuration:0.5 animations:^{

//        // 执行一次

//        self.rectView.transform = CGAffineTransformMakeScale(5, 0.5);

//        // 在self.rectView.transform现在的基础上继续执行

        self.rectView.transform = CGAffineTransformScale(self.rectView.transform, 2, 2);

//         self.rectView.transform = CGAffineTransformMakeTranslation(100, 100);

//        

//    }];

    

    // 仿射旋转

    [UIView animateWithDuration:0.5 animations:^{

        // 100度

        CGFloat degree100 = 100/180.0*M_PI;

        CGFloat degree45 = M_PI_4;

        // 执行一次

//        self.rectView.transform = CGAffineTransformMakeRotation(M_PI_4);

        // 在self.rectView.transform现在的基础上继续执行

        self.rectView.transform = CGAffineTransformRotate(self.rectView.transform, degree100);


        

    }];

    

}


ios UItableView,UITableViewHeaderFooterView分组头部的重用机制,简单地仿射变换CGAffineTransformios UItableView,UITableViewHeaderFooterView分组头部的重用机制,简单地仿射变换CGAffineTransformios UItableView,UITableViewHeaderFooterView分组头部的重用机制,简单地仿射变换CGAffineTransform

你可能感兴趣的:(UI)