5

プロジェクトの概要では、デバイスで回転できるフォトギャラリービューがアプリにあるため、[サポートされているインターフェイスの向き]がすべて選択されています。他のビューはポートレートのみです。ターゲットデバイスはiPhoneであり、すべてがiPhoneで正常に機能します。しかし、横向きモードのiPadで実行すると、スプラッシュとrootViewは次のようになります。

スプラッシュランドスケープ: ここに画像の説明を入力してください

ルートビュー-風景: ここに画像の説明を入力してください

私が期待した外観は、iPadがポートレートモードの場合と同じである必要があります。

スプラッシュポートレート: ここに画像の説明を入力してください

rootview-ポートレート: ここに画像の説明を入力してください

rootViewはMyNavigationController、いくつかの関連コードは次のとおりです。

MyNavigationController.m

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
  return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (NSUInteger)supportedInterfaceOrientations {
  return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutorotate {
  return NO;
}
4

3 に答える 3

9

次のようにコードを修正してください。

- (BOOL)shouldAutorotate {
   return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
   return UIInterfaceOrientationMaskPortrait;
}

YESから戻るのは奇妙に思えるかもしれませんshouldAutorotate。実際には、を返すとNOsupportedInterfaceOrientationsまったく呼び出されず、プロジェクト設定が優先されます。削除することもできますがshouldAutorotate、同じように機能するはずです。

参照

ユーザーがデバイスの向きを変更すると、システムはルートビューコントローラーまたはウィンドウ全体に表示される最上位のビューコントローラーでこのメソッドを呼び出します。ビューコントローラが新しい方向をサポートしている場合、ウィンドウとビューコントローラは新しい方向に回転します。このメソッドは、ViewControllerのshouldAutorotateメソッドがYESを返した場合にのみ呼び出されます。

于 2013-03-07T20:30:31.820 に答える
2

横向きの起動画面を表示しても、アプリで縦向きモードを使用するという意味ですか?

私の知る限り、iPhone専用アプリは横向きモードで起動できません。つまり、iPhone専用アプリに横向き起動画面を表示しても意味がありません。

ここの「デバイス固有の起動イメージの提供」セクションのドキュメントを確認してください。

于 2013-03-01T08:54:11.837 に答える
2

ステータスバーも縦向きにするのがいいと思います。残念ながら、これを行う簡単な方法はありません。デバイス/インターフェイスの向きをprotraitのみに設定できますが、これはアプリケーション全体に適用されます。また、すべてのビューの向きを自分で処理する必要があります。したがって、起動画像でステータスバーを非表示にし、ステータスバーを非表示にして、両方の方向で同じ画像を使用することをお勧めします。スプラッシュ画面の見栄えが良くなります。

于 2013-03-07T17:13:12.093 に答える