今週は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つのストーリーボードを作成する必要があります。
それが最良の解決策でしょうか?他の選択肢がありますか?
長いテキストでごめんなさい。どんな助けでも大歓迎です!
これは実際には古いバグの修正です。 Xcodeの以前のバージョンはステータスバーを正しく処理しなかったため、ウィンドウのYパラメータをゼロに設定していました。正しい値は20、ステータスバーの縦の太さです。
Interface Builderには、ステータスバーを表示するように指定できるパラメーターがあり、Yパラメーターに20を追加することもあります。これも正しく機能しませんでした。
バグが修正されたため、古いウィンドウはすべて、本来あるべきよりも20ピクセル高くなります(基本的にはステータスバーの下に表示されます)。
Apple devフォーラムのコンセンサスは、Appleは、この問題を修正するために、Interface BuilderでiOS6とiOS7の動作を指定する方法を追加します。