0

私はiPadアプリケーションを開発しています。いくつかの理由two tableviewsで、同じViewControllerにを表示する必要があります。を作成UIViewし、xibそれに接続しoutletましたview controller。そのビューをこれらの2つのテーブルビューにとして表示する必要がありtableHeaderViewます。そのビューをに割り当てようとするとboth header views、それはにのみsecond tableview表示されます。そのビューのインスタンスが1つあることを願っています。そのため、最後に割り当てたビューにのみ表示されます。どうすればこれを克服できますか?どんな助けでもいただければ幸いです。

これが私のコードです。

[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 は、一度に 1 つのビジュアル サブツリーにしか存在できません。IB を使用すると、要素をコピーして、そのインスタンスを 2 つ作成できます。または、その要素だけで別の xib を作成する場合は、その特定の xib をコードを介して 2 回 (テーブル ヘッダーごとに 1 回) ロードできます。

于 2012-11-10T13:25:41.020 に答える
0

1つのビューを2つの場所に表示することはできません....簡略化された1つのビュー==1つのスーパービュー

于 2012-11-10T20:19:20.813 に答える
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;

同様に、他のテーブルビューに追加して、それを解放します。

 [labelView release];
 [headerView release];

それが役に立てば幸い。

于 2012-11-10T16:07:44.460 に答える