IPhone 6 iOS9にアプリをインストールしました。ここで何が起きましたか。上下に黒いバーがあります。 iOS8でも問題なく動作します。どうすれば修正できますか?
Xcode 6.4と7でビルドしてみました。同じ結果です。
(iPhone 5は、このようなiPhone 4アプリの実行に使用されていました)
Xcodeの以前のバージョンからアプリを移行しましたか?その場合、Xcodeは現在、画面サイズについて推測しているため、実行時に実際の画面サイズを示す方法が必要です。
2つの方法があります。
a)起動画面を使用する場合
LaunchScreen.storyboardファイルがありません。 LaunchScreen.storyboardファイルを作成し、プロジェクトに追加します。
b)起動画面を使用しない場合。
ターゲットの設定に移動し、[全般]、[アプリアイコン]、[画像の起動]の順に選択します。 「スクリーンファイルの起動」を「main.storyboard」(または適切な場合は別のストーリーボード)に設定します
私のアプリは起動画像を使用しません。 「起動画面ファイル」を「main.storyboard」ファイルに設定すると、問題が修正されました。
この設定は、「ターゲット」->「一般」->「アプリのアイコンと起動画像」の下にあります。
詳細については、次のリンクを使用してください。 http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/
私はxcode 7.2を使用しています。最初に 過マンガン酸カリウム が示唆するように、LaunchScreen.storyboardファイルを作成しました。ただし、起動画面が必要ないため、Main.storyboardを起動画面ファイルとして設定してみましたが、うまくいきました!
アプリを以前のバージョンのxCodeからxCode 6またはxCode 7に移行すると、この問題に直面します。
IOS 7以前の場合、開発者は、アプリがサポートするすべての画面サイズ、解像度、向きに個別の起動画像を提供する必要があります。
Xcode 6以降には、別のオプションがあります。最初のView Controllerがアプリの起動画面として使用されるストーリーボードを指定できます。以下の手順を使用します。
LaunchScreen.storyboardという名前の空のストーリーボードファイルを作成します。
ターゲット設定に移動し、[全般]タブの[アプリアイコンと画像の起動]セクションで、起動画面ファイルとしてストーリーボードを選択します。 Xcodeは、対応するUILaunchStoryboardNameキーをアプリのInfo.plistに追加します。このキーが存在する場合、Xcodeは設定した起動画像よりも優先します。
シミュレータから古いアプリを削除し、プロジェクトをクリーンアップします。
乾杯:-)
私のアプリにも同じ問題があります。私のアプリでは、複数のターゲットがプロジェクトに追加されています。ストーリーボードの起動ソリューションを使用すると、全画面表示できますが、私の場合、iPhone 4ではランチ画像がぼやけて伸びて見えます。この問題を解決するために、LaunchImageアセットソリューションを使用しました。この後、私は同じ問題に直面しています。上記のすべての解決策を試しましたが、結局、png画像にALPHA resolutionsが含まれていないことがわかりました。新しい画像を追加した後、フルスクリーン画像を見ることができます。
私の場合、プロジェクトには複数のターゲットがあり、各ターゲットには独自の起動画面イメージがあります。ターゲットの1つが見た目は奇妙ですが、他のターゲットには黒いバーがあります。問題は、アセット内のLaunchフォルダーの名前にありました。名前をLaunchImageに変更すると、問題が解決します。
アセットカタログに移動して、新しいiOS起動イメージを作成します。 ターゲット>一般>アプリアイコンと起動画像>起動画像ソースで、アセットカタログに作成された新しい起動画像が自動的に表示されます。
そのセクションでXcodeのターゲット設定に移動し、そのセクションのアプリアイコンに移動して画像セクションを起動します。起動画面ファイルを選択します。値のドロップダウンがあります。起動画面ファイル値に対してCDVLaunchScreeen値を選択します。
私の場合、起動画像を含むアセットが1つありますが、上部と下部の暗いバーも表示されていました。
ストーリーボードの起動ソリューションを試しましたが、はい、それは機能しますが、新しいファイルを追加したくなかったので、問題を修正するためにこれを行いました。
それでおしまい!