3

ランドスケープのみ(両方)のビューがあります。モーダルView Controllerとして表示されます。

iPhone 5 (シミュレーター、私はまだデバイスを試していません) では、ビューが表示されると、320x568 ではなく 320x480 にサイズ変更され、左揃えになります。

しかし...シミュレーターを他の横向きに回転させるか、縦向きにしてから再び元に戻すと、正しく自動サイズ変更され、画面がいっぱいになります。

何を貼り付けるかが正確にわかっていれば、コードを貼り付けます...しかし、ここには多くのことが関係しているため、どこから始めればよいかわかりません。

他のすべてのビューは問題なくサイズ変更されますが、それらはすべて UITabbarControllers または UINavigationControllers 内にも含まれています。

4

1 に答える 1

1

この問題に対する私の短い/全体的な/簡単な解決策は、単に私のビューのフレームをメイン画面の境界に設定することでした。

[self.view setFrame:[[UIScreen mainScreen] bounds]];

いつものように...これは、self.viewが実際に読み込まれ、フレームを設定できるようになるまで実行できません。だから私はこれを-(void)viewDidAppearで行う必要があります

デバイス(iPadを含む)に関係なく、常にこのビューをフルスクリーンにしたいので、わざわざデバイスを検出する必要はありませんでした。

私の推測では、ビルトインコントローラー(UINavigationControllerなど)には、iPhone 5を検出し、それに応じてフレーム境界を設定するためのロジックがあります。


更新:結局のところ、私はより大きな問題を抱えていました。MainWindow.xibのメインの「ウィンドウ」が「起動時にフルスクリーン」に設定されていませんでした。これは、.xibのウィンドウのチェックボックスユーティリティビューです。

チェックされていないため、タッチターゲットもxibファイルの3:2次元の範囲外でマスクされていました。このチェックボックスをオンにすると、タッチターゲットが修正され、上記の質問の画面いっぱいの問題が修正されました。元の回答のコードを削除しましたが、「ウィンドウ」が画面のサイズになっているため、ビューは画面/ウィンドウ全体にうまく表示されます。

今より理にかなっています...

于 2012-12-03T03:43:36.227 に答える