web-dev-qa-db-ja.com

新しいiOS 7ステータスバーは、Xcode 5でコンパイルされたアプリで20pxの範囲を残します

今週はiOS 7 Betaがリリースされましたが、アップデートがリリースされるたびに、互換性のためにアプリを常に更新する必要があり、いくつかのバグが発生します。

さて、iPhoneにiOS 7をインストールし、アプリの原理は完全に機能し、Xcode 5(プレビュー)をインストールしてプロジェクトをコンパイルしました。新しいstatusBarが完全に落ち着き、View Controllerが背景として表示されることに気付きました。

ここで問題が発生します。ViewControllerがステータスバーであったスペースを獲得したため、画面の下部に20pxのホワイトバンドがあります。

ストーリーボードでこの問題を修正しても大丈夫ですが、20px statusBarによるiOS 6の問題はまだ存在し、画面が切れます。

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

それが最良の解決策でしょうか?他の選択肢がありますか?

長いテキストでごめんなさい。どんな助けでも大歓迎です!

28
jucajl

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

Interface Builderには、ステータスバーを表示するように指定できるパラメーターがあり、Yパラメーターに20を追加することもあります。これも正しく機能しませんでした。

バグが修正されたため、古いウィンドウはすべて、本来あるべきよりも20ピクセル高くなります(基本的にはステータスバーの下に表示されます)。

Apple devフォーラムのコンセンサスは、Appleは、この問題を修正するために、Interface BuilderでiOS6とiOS7の動作を指定する方法を追加します。

31
Cliff Harris