关于 - headerViewForSection returns nil问题

关于 - headerViewForSection returns nil问题
在通过 -tableView: viewForHeaderAtSection: 设置headerView,然后再去通过headerViewForSection取的时候 ,发现返回结果为nil;
究其原因

For a Header/Footer, we will take UITableViewHeaderFooterView and use the dequeueReusableHeaderFooterViewWithIdentifier method.

eg:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    static NSString *hIdentifier = @"hIdentifier";

    UITableViewHeaderFooterView *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:hIdentifier];
    if(header == nil) {
        header = [[[UITableViewHeaderFooterView alloc] initWithReuseIdentifier:hIdentifier] autorelease];
        UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,40)]autorelease];
        label.textColor = [UIColor blackColor];
        [header addSubView:label];
    }

    NSArray*subview = [header subviews];
    UILabel* label = nil;
    for (id v in subview) {
        if ([v isKindOfClass:[UILabel class]]) {
            label = (UILabel *)v;
            break;
        }
    }
    if(label)
    {
       // update label info
       label.text = @"label text";
       label.tag = section;
    }

    return header;
}

那么在需要用到的地方可以通过如下获取到label;

UITableViewHeaderFooterView *headerView = [tableView headerViewForSection:indexPath.section];
NSArray*subview = [header subviews];
UILabel* label = nil;
for (id v in subview) {
    if ([v isKindOfClass:[UILabel class]]) {
        label = (UILabel *)v;
        break;
    }
}
if(label)
{
   // update label info

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值