我正在开发一个iPad
应用程序。出于某些原因,我需要在同一个视图控制器中显示two tableviews
。我在UIView
中创建了xib
,并将outlet
与view 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]];
我认为这也和以前一样。
答案 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)
一个视图不能出现在两个地方....简化说 一个视图==一个超级视图