2

カスタムコンテナビューコントローラを作成していますが、子ビューコントローラのビューの1つのフレームのサイズを変更したい場合、そのサイズは画面の向きに関して適切ではありません。

コンテナのinitメソッドをより正確に言うと、2つのインスタンス変数(2つのビューコントローラ)を保持しています。次に、コンテナーのviewdidloadメソッドで、1つのビューコントローラーのビューのフレームのサイズを変更し、2つをサブビューとして追加します。

私の問題は、横向きでのみ作業していることです。ビューコントローラの1つのフレームサイズを尋ねると、高さと幅が逆になります。幅1024、高さ748が必要ですが、幅748、高さ1024になります。

なぜなのかご存知ですか ?

PS:コンテナビューコントローラを含むすべてのビューコントローラで、shouldautorotateメソッドをUIOrientationInterfaceIsLandscape()に設定しました

どうもありがとう

4

1 に答える 1

7

正確な設定はわかりませんが、役立つ一般的な情報を次に示します。

ビュー階層の最上位(または実際には最上位)にビューコントローラがある場合、幅と高さのこの「スワッピング」効果が得られることがわかります。スワッピングは通常、ビューに現れますが、ビューframeには現れませんbounds。これは、bounds事実上、一部の変換がフレームに適用されているためです。これらの変換には、90度の回転が含まれる場合があります(デバイスが横向きモードであるため)。

プロパティをチェックする正確なタイミングframeも重要になる可能性があることに注意してください。ビューがロードされた後、画面に表示される前にプロパティをチェックしている場合、「間違った」結果が得られる可能性があります。

于 2012-08-17T21:15:17.903 に答える