4

アプリケーションウィンドウに追加されたimageViewである固定ヘッダーバナー(0,0,320,44)の下にビューが表示されたviewController xibビューを表示しようとしています。

これは、複数のビュー コントローラーをナビゲートしている間、画面に固定する必要があるためです。それは私がやっているプロジェクトの要件です。

これまでのところ、私は試しました:

  • ドット表記とセッターの両方を使用して、XIB ビューを適切なフレーム サイズ (0,0,320,416) にサイズ変更します。

  • self.view.frame = CGRectMake(0, 44, 320, 416); で viewDidLoad のフレームを変更する

しかし、それは機能していません。なにか提案を?

4

2 に答える 2

17

フレームをセットしますviewWillAppear

- (void)viewWillAppear:(BOOL)animated
{
     self.view.frame = CGRectMake(0, 44, 320, 416);
    [super viewWillAppear:animated];
}
于 2012-05-03T10:51:37.567 に答える
1

もう少し追加したいだけです。UIViewController のビューの変更が機能しないviewDidLoad理由は、呼び出しが原因で、[window makeKeyAndVisible]通常は の後に呼び出されますviewDidLoad。この呼び出しはwindow.rootViewController、ウィンドウのフレームと等しくなるように のフレームを変更します。UIViewController の view.frame AFTER を変更することでこれをテストでき、変更は保持され[window makeKeyAndVisible]ます。

viewWillAppearviewDidAppear内で呼び出されますが[window makeKeyAndVisible]、ビューのフレームのサイズが変更された後に呼び出されます。

rootViewController注意点は、ビューのフレームが自動的に変更される一番上のコントローラーのみです。childViewControllersこれは、に接続されているものには影響しませんrootViewController

于 2016-04-02T20:23:32.047 に答える