码迷,mamicode.com
首页 > 其他好文 > 详细

UITableView调用headerViewForSection返回nil问题

时间:2015-08-06 15:20:34      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:

本文转载自http://blog.csdn.net/reylen/article/details/47043571,顺便加了一些笔记


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

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

换一种说法就是:

Header/Footer也要像UITableViewCell一样指定Identifier,否则你用headerViewForSection:方法来获取Head/Footer的结果只能为nil


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
}


UITableView调用headerViewForSection返回nil问题

标签:

原文地址:http://my.oschina.net/ioslighter/blog/488626

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!