仅为一个uitableview设置标题

时间:2013-04-15 09:44:04

标签: ios xcode uitableview

我需要帮助。我在一个UITableViews中有三个UIView。但是,我只希望一个UITableView有一个标题。我怎么能在代码中说出来?我已经有了以下代码。谢谢你们。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {   
    if (tableView == Table1) {
        return @"My Header Text";
    } else if (tableView == Table2) {
        return nil;
    } else if (tableView == Table3) {
        return nil;
    }
}   

3 个答案:

答案 0 :(得分:2)

您提供的代码将仅为某个部分添加标题视图。因此,如果您有两个或更多部分,则需要编写额外的逻辑来设置每个部分的标题视图。

这里设置单个表的tableHeaderView是一种简单的方法。

UILabel *label = [[UILabel alloc]initWithFrame:CGRectZero];
label.text = @"my table header";
table1.tableHeaderView = label;

答案 1 :(得分:1)

如果这不起作用,你也可以尝试为标题的高度返回零:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    if (tableView == Table1) 
    {
        return 50.0; // or what's the height?
    } 
    else
    {
         return 0.0;
    }
}

答案 2 :(得分:0)

试试这个

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
NSString *sectionTitle = [self tableView:tableView titleForHeaderInSection:section];
if (sectionTitle == nil) {
return nil;
}
 UILabel *label = [[[UILabel alloc] init] autorelease];
 label.frame = CGRectMake(20, 6, 300, 30);
 label.textColor = [UIColor blackColor];
 label.font = [UIFont boldSystemFontOfSize:16];
 label.text = sectionTitle;

  UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, SectionHeaderHeight)];
  [view addSubview:label];
  return view;
  }