2010-12-14 10 views
2

shouldAutorotateToInterfaceOrientationを実装していて、アプリが実行されている間は、すべてが正常に動作します。しかし、私は起動時に私のアプリの動作が好きではありません。アプリケーションを横向きに起動すると、起動時に回転が発生する

アプリを縦向きに起動すると、期待通りに開きますが、アプリを横向きに起動すると、すべてが縦向き(ステータスバーを含む)で読み込まれて、画面のアニメーションが表示されますランドスケープに回転します。そのアニメーションは問題ありませんが、公開時には表示したくありません。

他のほとんどのアプリを見ると、起動時にオリエンテーションが検出され、起動時に回転アニメーションが表示されません(起動時にデバイスが回転している場合のみ)。

アプリが起動時に回転アニメーションが表示されないように、アプリが正しい向きで読み込まれるようにするにはどうすればよいですか。起動後にユーザーが回転アニメーションを見ただけの場合、私はそれを好むだろう。

答えて

5

わかりました。 iPhone tempalteからアプリを作成してiPad用に修正した人は、「サポートされているインターフェイスの向き」という-info.plistファイルの行を追加し、以下のようにサポートされている向きをすべて入力する必要があります。それは期待どおりに動作するようです。

<key>UISupportedInterfaceOrientations</key> 
<array> 
    <string>UIInterfaceOrientationPortrait</string> 
    <string>UIInterfaceOrientationPortraitUpsideDown</string> 
    <string>UIInterfaceOrientationLandscapeLeft</string> 
    <string>UIInterfaceOrientationLandscapeRight</string> 
</array> 
+0

優れています。私のアプリはランドスケープしかサポートしていませんでした。 UIInterfaceOrientation設定の向きで、それは十分に素早く回転するだろうが、迷惑だった(時には肖像画で始まらないように適切な起動イメージを提供しなければならなかった)。 ://j.mp/fY56ml) – lilbyrdie

+0

喜んで私の助けを借りることができました!自分の質問に答えるためのポイントを得ることができるように私の答えなどを投票することが自由に感じてください:) – Jackson

+1

ありがとうジャクソン、何か魔法..ヘブ –

0

私は私のアプリではこのような何か行っている:単純に

if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationLandscapeRight){ 
    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]; 
}else if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationLandscapeLeft){ 
    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft]; 
} 

を:開始時に向きを検出し、その値にStatusBarOrientationを設定します。ビューをロードする前にこれを行う場合(または、できるだけ早くアプリストラクチャ内で可能なように)、ステータスバーは最初から右側に表示されるはずです(したがって、回転は必要ありません)。 縦向きもサポートしたい場合は、他に2つのフォークを追加するだけです。

+0

私はこれを試してみましたが、私はUIInterfaceOrientationPortraitとUIInterfaceOrientationPortraitUpsideDownための2つの他のIFSを追加し、それは何も変わりません。私のアプリはまだ起動し、ステータスバーが変わり、スクリーンは正しい方向に回転します。 : 私のアプリデリゲートでdidFinishLaunchingWithOptionsに追加しました。それはどこに追加する必要がありますか? – Jackson

関連する問題