質問

Appleのマニュアルで本当に重要なものを逃したと思います。

私が持ちたいものと、私が何をしたか +私がしていることを説明します。

前文:

  • 私の仕事の目標は、ログイン画面を持つアプリです。この画面は、後でフェードアウトするために、他のすべてのビューの上に配置されることになっています。したがって、この場合、私はすでに「1つのメインウィンドウガイドライン」を正しく理解した場合に備えて、ルールを破っていると思います。

私が欲しいもの:

  • ユニバーサルアプリケーションがある√チェック
  • iPadのみのuiinterfacerotationがあるユニバーサルアプリケーションを持つ√チェック
  • 起動時にuiinterfaceorientationやuideviceorientationについて問題を抱えていないため、すべてのビューを適切に回転させて適切に配置することなく、適切な次元ですべてのビューを表示できます。 - 未検査

私が得るもの:

  • インターフェイスビルダーの私のビューからデフォルトの方向であるランドスケープでアプリを開始すると、そのperfecltyが整列し、必要なものをすべて回転させることができます。
  • ポートレートでアプリを開始すると、画面上で飛び回るランドスケープビューが表示されます - 毎回異なるペースで - 少なくともそうです。アプリを今すぐ回転させると、そのすべてが必要に応じて整列しました - また、必要に応じて完全に揃っています。

私がやること:

  • すべての回転関連設定の99%はインターフェイスビルダーで作成されています。現在、回転が行われたときに背景画像を変更するためのいくつかのDID-CHANGE-METHODSなどがあります。

私は、デバイスがその方向を知っている後に画面を構築しても、これにつながることに気づきました。

だから言い換えれば:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
      [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
      [self addEventListener:UIDeviceOrientationDidChangeNotification sel:@selector(buildScreen)];
       ....

注:AddEventListenerは、簡単に処理するために作成した小さな通知カテゴリです。ここには魔法はありません。

ビルドスクリーンでは、すべてのサブビューを追加します。最初は、バックグラウンドの実際の画面では、この画面がサブビューとしてログインを取得します(メインウィンドウ自体にログインを追加すると、状況は同じです)。

したがって、この場合、私は本当に次に何をするのかわかりません。 Orientation-Alignmentがセットアップされると、IBで定義したようにすべてに完全に適合します。

ヘルプ、リンク、コードなどが高く評価されています。どうもありがとうございます!私はこれを検索しようとしましたが、多くの同様の問題、解決策が見つかりませんでした。だから、私が本当に同じ質問をしているように見える場合は少し申し訳ありません。本当にそうするなら、大きな質問です。

よろしくお願いします

役に立ちましたか?

解決 2

適切な解決策が見つからなかったので、使用しました multiple-xib それを成し遂げるためのファイル。迷惑ですが、うまく機能します。

他のヒント

ユーザーとして迷惑だと思うので、通常はこれをお勧めしませんが、info.plistの設定を試すことができます。

Initial interface orientation

そして、これがあなたのために働くものであるならば、これを風景に設定してください。

一時的な回避策になる可能性があります。私はあなたの問題が単純な示唆的な修正よりもはるかに複雑であることを再確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top