UIView没有在两个标题视图中显示

时间:2012-11-10 12:39:40

标签: ios ipad uiview tableview

我正在开发一个iPad应用程序。出于某些原因,我需要在同一个视图控制器中显示two tableviews。我在UIView中创建了xib,并将outletview controller相关联。我需要将这两个tableview中的视图显示为tableHeaderView。当我尝试将该视图分配给both header views时,它仅显示在second tableview中。我希望该视图有一个实例。因此它仅在我最后指定的视图中显示。我怎么能克服这个?任何帮助,将不胜感激。

这是我的代码。

[energyTableView setTableHeaderView:tableHeader];
[maintenanceTableView setTableHeaderView:tableHeader];

@CodeBySteveZ

正如他所说,我创造了一个xib并尝试过。我仍然无法得到解决方案。我做错了吗?这就是我尝试的方式。

NSArray *topLevelObjects = [[NSBundle mainBundle]loadNibNamed:@"tableHeaderCell" owner:nil options:nil];

[energyTableView setTableHeaderView:[topLevelObjects objectAtIndex:0]];
[maintenanceTableView setTableHeaderView:[topLevelObjects objectAtIndex:0]];

我认为这也和以前一样。

3 个答案:

答案 0 :(得分:4)

您必须创建tableHeader的另一个实例。 UIView一次只能存在于一个可视子树中。使用IB,您可以复制元素并创建它的2个实例。或者,如果您使用该元素创建单独的xib,则可以通过代码将该特定xib加载两次,每个表头一次。

答案 1 :(得分:0)

@ R.A我知道以编程方式进行繁琐但你可以试试这个

 UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(XXX, YYY, XXX, YYY)];
 UILabel *labelView = [[UILabel alloc] initWithFrame:CGRectMake(XXX, YYY, XXX, YYY)];
 [headerView addSubview:labelView];
 energyTableView.tableHeaderView = headerView;

同样地将其添加到其他tableview中,然后释放它。

 [labelView release];
 [headerView release];

希望它有所帮助。

答案 2 :(得分:0)

一个视图不能出现在两个地方....简化说 一个视图==一个超级视图