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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。