本文主要是介绍关于 - 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 infolabel.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}
这篇关于关于 - headerViewForSection returns nil问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!