0

iOS デバイスにデプロイする予定の反応ネイティブ アプリでスプラッシュ スクリーンを設定しようとしています。

ご存知のように、対象となる画面がいくつかあります (ピクセル密度、アスペクト比などによって異なります)。そのため、いくつかの画像を提供する必要があります。iOS が任意のシナリオで使用するイメージを決定できるようにするマッピングを提供するには、少なくとも 3 つの方法があるようです。これらのアプローチのいずれかがそれ自体で十分であると考えられていることは私の理解です:

  1. すべての画像ファイルを Xcode プロジェクトのルートに配置し、特定の規則 ( Default.pngDefault@2x~ipad.pngDefault-568h@2x.pngなど)に従って名前を付けます。
  2. プロジェクトの Info.plist でディクショナリ アイテムを定義UILaunchImagesし、目的の画像を指す各シナリオのディクショナリ エントリを使用します。
  3. アセット カタログに「LaunchImage」タイプのアイテムを作成し、イメージを各シナリオのプレースホルダーにドラッグ アンド ドロップしてから、プロジェクト ターゲットの「アプリ アイコンと起動イメージ」構成で LaunchImage アイテムをポイントします。

私は 3 番目のアプローチを使用することを強く好みます。これは主に、各ディスプレイ シナリオの識別特性を定義する限り、技術的な精度が最小限で済むためです。しかし、iPhone5 でテストするとうまくいきません。カラフルな画像が表示される代わりに、スプラッシュ スクリーンが黒くなります。LaunchImage ボードのすべての場所に画像を配置しましたが、これは、Xcode6 に同梱されている LaunchImage スケルトンには iPhone5 に対応する場所がないことを示唆しています。それは正しくありません。(はい、私の画像は PNG です。)

多くのチュートリアルでは、アセット カタログに新しいイメージ セットを作成するように指示されていますが (スケルトンが異なります)、「アプリ アイコンと起動イメージ」構成では、起動イメージのアイテムしか選択できません。

最初の 2 つのアプローチ (つまり、ファイルシステム規則に依存するか、Info.plist でマッピングを定義する) を文書化したリソースがオンラインでたくさんありますが、アセット カタログのアプローチを実際に扱っているように見えるものはありません。

誰かが私を正しい方向に向けることができますか?


EDIT : 興味深いことに、@1x イメージを LaunchImage ボードのすべての場所に配置すると、「該当するコンテンツがない」ため、プロジェクトのビルドに失敗します。@2x 画像をすべての Retina スポットに配置すると、アプリはビルドされますが、スプラッシュ スクリーンが黒くなります。

これは何かを明らかにしますか?

4

1 に答える 1

0

少し実験した後、画像の寸法が正しくないため、そのシナリオに割り当てられた画像を電話が黙って拒否していたことがわかりました。私が提供した画像は、適切なものよりもわずかに大きく、どうやら iOS がこれを処理する方法は、有用な診断情報を一切出力せずに黒い起動画面を表示することです。

この SO postから正確な寸法を取得しました。

于 2016-03-03T03:54:51.400 に答える