ios UItableView,UITableViewHeaderFooterView分组

当前位置:  >  编程 >  移动开发 >  iphone >

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

怎样设置包括第一栏在内相同高度的section(小技巧,虽然容易但容易忽略) *第一步,在viewdidload里将尾部设为0,table.sectionFooterHeight = 0;(代理方法)- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{

怎样设置包括第一栏在内相同高度的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;

}

你可能感兴趣的:(ios UItableView,UITableViewHeaderFooterView分组)