0

我正在开发一个iPad应用程序。由于某些原因,我需要two tableviews在同一个视图控制器中显示一个。我在 a 中创建了UIView一个xib并将 a 连接outlet到那个view controller。我需要在这两个表视图中将该视图显示为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]];

我想这也和我以前做的一样。

4

3 回答 3

4

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

于 2012-11-10T13:25:41.020 回答
0

@RA我知道以编程方式去很乏味,但你可以试试这个

 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 一个den 释放它。

 [labelView release];
 [headerView release];

希望能帮助到你。

于 2012-11-10T16:07:44.460 回答
0

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

于 2012-11-10T20:19:20.813 回答