2011-07-16 3 views
2

iPhone用に設計されたxibがあります。我々はアプリをiPadに移植している。なぜUIScrollViewの初期サイズはまだiPad上で320ですか?

UIScrollViewのページ部分を使用しています。幅と高さを設定した自動サイズ変更マスクがあります。 iPadの最初の読み込みでは、フレームの幅は320ですが、もちろんUIが見えなくなります。

私たちにとって奇妙なのは、デバイスを回転させると、iPadの画面幅に基づいて新しいサイズを「選択」するということです。その時点から正しいです。

フレームの幅を初期化する必要はありますか?

答えて

2

XIBを作成するときに "Targeted for iPad"というボックスをチェックしましたか? Tageted for XIB checkbox

ない場合は、手動でXIBを編集(またはそれを再度再作成)する必要が

あなたは同じコントローラに2つの異なるXIBsが必要です。このようにインスタンス化します。

MyScrollViewController *controller; 
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    // iphone related code 
    controller = [[MyScrollViewController alloc] initWithNibName:@"MyScrollViewController" 
                          bundle:nil]; 
} 
else 
{ 
    // ipad related code 
    controller = [[MyScrollViewController alloc] initWithNibName:@"MyScrollViewController_iPad" 
                          bundle:nil]; 
} 
[self presentModalViewController:controller animated:NO]; 
[controller release]; 
+0

もし私がそれをしたら、それはiPhoneのレイアウトを破るだろうか? – tjg184

+0

iPhone用とiPad用の2つの異なるXIBが必要です。それらを作成すると、同じコントローラに対して異なるXIBが初期化されます。 – Mugunth

+0

これを行う方法に関するコードを更新しました。 – Mugunth

関連する問題