2010-12-24 9 views
0

ビューが読み込まれた後、私は方向をLandscapeに変更しました。そこに、私は青い帯が見え、景色は下に移動します。私が他のタブに行って戻ってくるとうまくいきます。ビューの自動サイズ調整が初めての向きで機能しないのはなぜですか?

誰もがこれを手伝ってくれますか?

私はビューを自動サイズ調整するためにこれを行っている。ここで

-viewDidLoad: 
{ 
self.view.autoresizingMask =(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleRightMargin); 
self.view.autoresizesSubviews; 
[super viewDidLoad]; 
} 
-shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 

return YES; 
} 

はスクリーンショットです:

alt text

答えて

0

私は自動サイズ変更がのviewDidLoad前にトリガーされると信じて、行動は必ずしも明確に定義されていません。 initステージで(またはペン先からビューをロードしている場合はインターフェースビルダーでも)自動サイズ調整マスクオプションを追加できるかどうかを確認してください。全体的に、もっと多くの情報がここに必要ですが、 "viewDidLoad"に入った時点で(多くの場合、ロードされてすぐに使用できる)、多くのことがビューに行われていることに留意してください。

+0

私はinitメソッドで試してみました.....その動作しません....他の例では、私は、naviagtionbarを作成し、(サブビューとして)self.viewに追加しました。初期化メソッドで自動サイズ変更マスクを設定します。それは同じケースをoreinted。そのビューは、ステータスバーの下から2番目のステータスバーの下に表示されます。 –

+0

おそらく、viewDidLoadを使用してself.frameパラメータを正しい場所に変更できるかどうかを確認します。ウィンドウのサイズを適切に把握できるはずです。最終的にInterface Builderを使用している場合は、適切な自動サイズ設定ですべての問題を修正する必要があります。私は、最初からオブジェクトを作成しているときに、手動でそのような自動サイズ変更マスクを設定しています(その場合は、addSubviewが呼び出される前に設定されています) –

関連する問題