2013-06-14 2 views
28

今週はiOS 7 Betaが出ました。アップデートが出るたびに互換性のためにアプリをアップデートする必要があります。新しいiOS 7 statusBarはXcode 5でコンパイルされたアプリケーションで範囲20pxを残しました

私のiPhoneにiOS 7をインストールし、アプリの原則が完璧に働いてからXcode 5(プレビュー)をインストールしてプロジェクトをコンパイルしましたが、新しいstatusBarが完全に落ち着いていることに気付きました。 。

これは、ビューコントローラがstatusBarだったスペースを獲得したため、画面の下部に20pxの白い帯が表示されます。

私のストーリーボードでこの問題を解決しても問題ありませんが、20pxのstatusBarのためにiOS 6の問題が残っていて、画面が途切れてしまいます。

簡単な解決策は、起動時にiOSのバージョンを確認し、それぞれに応じてストーリーボードを作成することだと思いました。私のプロジェクトでは、私は3つのストーリーボード、iPhone 3.5 '、' iPhone 4 '、' iPad 'を持っています。すぐに3つのストーリーボードを作成する必要があります。

これは最適なソリューションですか?私には別の選択肢がありますか?

ご迷惑をおかけして申し訳ございません。どんな助けも歓迎です!

+0

自動レイアウトまたは少なくともスプリングとストラットを使用すると、このような問題は発生しません。 –

+0

デベロッパー向けのプレビュー版ではありません。 – Abizern

+0

UINavigationControllerは自動的に20ピクセルのギャップを管理します。 UINavigationControllerを使用しない場合は、コードのギャップを処理できます。 –

答えて

31

これは実際は古いバグの修正です。以前のバージョンのXcodeではステータスバーが正しく処理されなかったため、ユーザーはウィンドウのYパラメータをゼロに設定しました。正しい値は20、ステータスバーの垂直方向の太さです。

Interface Builderには、ステータスバーが存在するように指定するパラメータがあり、Yパラメータに20が追加されることを漠然と思い出しました。これは正しく動作しませんでした。

バグが修正されたので、古いウィンドウはすべて20ピクセル以上上になります(基本的にステータスバーの下に表示されます)。

アップルのデベロッパーフォーラムのコンセンサスは、Appleがこの問題を解決するためにInterface BuilderでiOS6とiOS7の動作を指定する方法を追加するということです。

+1

iOS 6とiOS 7の両方でアプリが正常に見える方法はありますか?解決策が必要です。助けてください。 –

+0

Ankitでは、実行時にiOSのバージョンを常に確認してから、ウィンドウのyパラメータを適切に設定することができます。 –

+1

私はこれが正しい選択ではないと思う。標準的な解決策を理解する必要がある、なぜAppleがこれを気にかけなかったのかわからない。:( –

関連する問題