1

サブビューを UITableViewController に追加すると、テーブルビューの下にあるように見えます。サブビューを正しくロードしていないかaddSubview、間違った場所で呼び出している可能性があります。私が参照しているサブビューは、「クリックしてください」ボタンも含まれているタブバーの上の赤い領域です。

スクリーンショット

細胞株が重なり合っていることがわかります。TableViewController にサブビューを追加する場所は次のとおりです。

- (void)viewDidLoad {
    [super viewDidLoad];
    CGRect hRect = CGRectMake(0, 170, 320, 480);
    HomeScreenOverlayView *homeView = [[HomeScreenOverlayView alloc] initWithFrame:hRect];
    [self.tableView addSubview:homeView];
    [homeView release];
}

何か案は?ありがとう!

4

3 に答える 3

4

私はこの問題を自分で抱えており、テーブルにビューを追加するのではなく、ビューをテーブルのスーパービューに追加することで解決しました。

UIView *viewToAdd = [[UIView alloc] initWithFrame: self.view.frame];
[self.view.superview addSubview: viewToAdd];

これは、テーブル全体をマスクする場合 (ロード画面など) に特に便利です。

注意: 通常、ビューのライフサイクルでこれを viewWillAppear: に追加します。

于 2010-07-25T11:51:20.027 に答える
2

addSubviewを呼び出すと、おそらくテーブルビューに追加された最初のビューになります。後で、すべてのセルとサポートビューがビューに追加されます。

空のビューを作成し、それにテーブルビューとオーバーレイビューの両方を追加して、オーバーレイビューがテーブルビューの上にあることを確認するのが最善の方法です。

ビューは、描画、インタラクション、レイアウトの3つの役割を果たします。これらの役割の1つだけを満たすビューを持つことは問題ありません。

于 2010-04-16T02:04:52.847 に答える
0

- (void)sendSubviewToBack:(UIView *)viewまたはを使用できます- (void)insertSubview:(UIView *)view atIndex:(NSInteger)indexaddSubview常に新しいビューを前面に置きます。
編集:申し訳ありませんが、質問を読み間違えました。サブビューを前面に表示したいようです。

于 2010-04-16T01:52:16.190 に答える