ios UItableView,UITableViewHeaderFooterView分组头部的重用机制,简单地仿射变换
怎样设置包括第一栏在内相同高度的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; } |