2

私はshouldAutorotateToInterfaceOrientationを実装しましたが、実行後のアプリの方向や方向の変更に関しては、すべて正常に機能します。ただし、最初に起動したときのアプリの動作は気に入らない。

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

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

起動時にユーザーに回転アニメーションが表示されないように、アプリが適切な方向に読み込まれるようにするにはどうすればよいですか。ユーザーが起動後にデバイスを回転させた場合にのみ回転アニメーションを見た方がいいと思います。

4

2 に答える 2

5

さて、私はそれを理解したと思います。iPhoneテンプレートからアプリを作成してiPad用に変更した場合は、-info.plistファイルに「サポートされているインターフェースの向き」という行を追加し、サポートされているすべての向きを次のように入力する必要があります。その後、期待どおりに動作するようです。

    <key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
于 2010-12-14T18:58:38.690 に答える
0

私は自分のアプリで次のようなことをしました:

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

簡単に言うと、開始時に Orientation を検出し、StatusBarOrientation をその値に設定します。ビューをロードする前にこれを行うと (または、少なくとも App 構造内でできるだけ早く)、ステータスバーが最初から右側に表示されるはずです (回転は必要ありません)。縦向きもサポートしたい場合は、2 つの他のフォークを追加するだけです...

于 2010-12-14T06:43:27.163 に答える