- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
NSString *sectionTitle = @"";
if(section == 0)
sectionTitle = @"Overall Progress";
else
sectionTitle = [[courses objectAtIndex:section-1] objectForKey:@"course-name"];
// Create label with section title
UILabel *label = [[[UILabel alloc] init] autorelease];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
label.frame = CGRectMake(15, 10, 300, 30);
label.font = [UIFont boldSystemFontOfSize:14];
}
else
{
label.frame = CGRectMake(50, 20, 600, 60);
label.font = [UIFont boldSystemFontOfSize:19];
}
label.text = sectionTitle;
label.backgroundColor = [UIColor clearColor];
[label sizeToFit];
// Create header view and add label as a subview
UIView *view;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
}
else{
view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 640, 500)];
view.backgroundColor = [UIColor clearColor];
}
[view addSubview:label];
[view autorelease];
return view;
}
这里的代码部分在我调试时返回1,因此第0部分代码没有被执行。因此,我无法在表格标题视图中获取“整体进度”文本。
答案 0 :(得分:3)
解决方案是使用您想要的高度实现heightForHeaderInSection。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 44;
}
来自tableView:heightForHeaderInSection:
在iOS 5.0之前,对于tableView:viewForHeaderInSection:返回零视图的部分,表视图会自动将标题的高度调整为0。在iOS 5.0及更高版本中,您必须在此方法中返回每个节标题的实际高度。
来自tableView:viewForHeaderInSection:
返回的对象可以是UILabel或UIImageView对象,也可以是自定义视图。只有在实现tableView:heightForHeaderInSection:时,此方法才能正常工作。
答案 1 :(得分:0)
tableView的实现是什么:heightForHeaderInSection:?如果你在0那里返回0,那么我们的视图将被调整为根本不可见。