0

我的项目中有两个 UITableView ,我使用以下方法为一个表提供自定义标题:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    if(tableView.tag == 3)
    {
    SectionInfo *array  = [self.sectionInfoArray objectAtIndex:section];
    if (!array.sectionView)
    {
        NSString *title = array.groupdeck.groupTitle;
        array.sectionView = [[SectionView alloc] initWithFrame:CGRectMake(0, 0, tblData.bounds.size.width, 45) WithTitle:title Section:section delegate:self];
    }
    return array.sectionView;
    }
    else{
        return 0;
    }

return 0;
}

它为带有标签 3 的表提供标题,例如:

在此处输入图像描述

但它也将默认标题提供给其他表,甚至return 0还有其他条件,例如:

在此处输入图像描述

我错过了什么?

4

3 回答 3

2

它可能默认为默认标头,因为您返回了0. 尝试返回nil

来自:tableView:viewForHeaderInSection:默认值?

于 2013-02-27T07:39:35.030 回答
2

尝试 :

otherTable.sectionHeaderHeight = 0.0;

你不必做任何其他事情。

或者:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
 { 
      if(tableView.tag == 3)
      {
          //Required height.
      }
      else
      {
          return 0.0; 
      }
 }
于 2013-02-27T07:57:13.623 回答
0

参考 Apple 文档中所写的

 // custom view for header. will be adjusted to default or specified header height
    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section; 

它显示默认标题,分组表的高度为 22,非分组表的高度10

此外,如果您要显示的视图的高度UITableView 大于上述值,那么您还必须使用UITableViewDelegate 方法

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
于 2013-02-27T08:19:19.323 回答