web-dev-qa-db-ja.com

iOS6およびiOS7をサポートする起動画面-スプラッシュ画面を強制する

起動画面に関しては、iOS6とiOS7(両方をサポート)の両方でアプリケーションの外観を模倣する統一的な方法を見つけることができません。ツールバーメニューがある場合、またはそれを解決するための素晴らしいアイデアがある場合、ロゴなどの通常のスプラッシュスクリーンを作成する必要がありますか?

23
FBL

短い答え

IOS 7では、アプリは実行しているiOSのバージョンに応じて異なる起動画像を使用できます。異なる起動画像を提供するには、Info.plistファイルにILaunchImagesキーを追加し、辞書を使用して各起動イメージを説明します。

バックグラウンド

次のキーを使用します。

ILaunchImageName-PNG画像ファイルの名前を含む文字列。画像ファイルは、アプリバンドルの最上位に存在する必要があります。このキーに指定する名前には、ファイル名拡張子を含めたり、@ 2x、-568h、〜iphone、〜ipadなどの修飾子を含めたりしないでください。

ディスク上では、イメージファイル名に必要に応じて@ 2x、-568h、〜iphone、または〜ipad修飾子が含まれている場合がありますが、それらは必須ではありません。システムは、ロードするファイルを選択するときに、そのような修飾子を自動的に考慮します。

ILaunchImageMinimumOSVersion-iOS7の場合、これは文字列「7.0」である必要があります。

ILaunchImageOrientation – Portrait、PortraitUpsideDown、Landscape、LandscapeLeft、LandscapeRightのいずれかを含む文字列。

ILaunchImageSizeString幅と高さを指定、例:「{320、480}」。デバイスの縦向きの幅と高さを指定する必要があります。つまり、同じデバイスをターゲットとするポートレート画像とランドスケープ画像の幅と高さは同じになります。

このキーが存在する場合、iOS 7はこれを排他的に使用して起動画像を取得します。

しかし、iOS7の命名規則に準拠することは非常に役立つことがわかりました!

このキーはiOS 7.0以降でサポートされています。

OK –それで今は何?

すでにiOS6用の起動イメージと、すべての特定の命名規則があったためです。すべてのサイズと名前に関する混乱を抑えるために、すべてのコピーを作成し、名前の前に「iOS7-」を付けることにしました。プレフィックスを作成すると、ほとんどの画像がすぐに正しく読み込まれるので便利です。

ファイル名:iOS6用にこれらをすでに持っていましたが、必要なファイルのファイルサイズもリストします。

そのため、iOS7のこれらのファイル名すべて(同じサイズ)のコピーを作成し、先頭に「iOS7-」を付けました。

XCodeで

PLISTでエントリを作成します。 your-name-of-application.plistに移動します。空白の領域で、右クリックして[行の追加]を選択します。 .plistの他の情報のサブアイテムではなく、最上位のアイテムになるようにしてください。

書き込み:UILaunchImages

このUILaunchImagesを右クリックして、値のタイプ「配列」を選択します。

以下の図をテキストのガイドとして使用し、テキストがすべて完成したときの外観を確認してください。

enter image description here

この配列を開いて左の小さなインジケーターの三角形が下を向くと、最初は空ですが、開いているときに「行の追加」を選択すると、サブラインが作成されます。今それをしてください:

UILaunchImagesを右クリックして、「行の追加」を選択します。この新しい行(アイテム0)を右クリックし、値の種類「Dict」を選択します

三角形のインジケーターでこのアイテムを開き続け、右クリックして[行を追加]をクリックします

このアイテムにはUILaunchImageMinimumOSVersionという名前を付け、値のタイプを「string」に設定し、文字列を「7.0」に設定します

現在、以下はすべて文字列であり、UILaunchImageMinimumOSVersionアイテムと同じレベルにある必要があります。同じ辞書(辞書)で。これらを作成するには、それぞれに対して「行を追加」を選択します。

UILaunchImageName – iOS7起動イメージのベース名。私の場合、これは「iOS7-Default」でした

UILaunchImageOrientation-例:ポートレート

UILaunchImageSize-基本ベースのサイズiOS7-Default.png: "{320、480}"。プログラムは、ベース名の順列を持つすべてのファイルを検索します。 ipad/iphone/portrait/landscapeまたは.pngの指定なしでファイルのベース名を選択することを忘れないでください。

注:

Xcodeは、利用可能なすべてのスロットにiOS6イメージを最初に追加した後、すでに.plistに次の項目を作成していました:-)

UILaunchImageFile〜ipad…=「デフォルト」–これで問題ありませんでした

UILaunchImages〜ipad…iOS7バージョンに更新する必要のある2つのアイテムがありました。これは、それらが現在iOS6バージョンを誤って保持しているためです。 Default1024x768およびDefault768x1024という名前を付けていたもので、名前のそれぞれに「iOS7-」というプレフィックスを付けただけで完了しました。

Plistを直接編集したい人を探す方法の例:

<key>UILaunchImages</key>
  <array>
    <dict>
      <key>UILaunchImageMinimumOSVersion</key>
      <string>7.0</string>
      <key>UILaunchImageName</key>
      <string>iOS7-Default </string>
      <key>UILaunchImageOrientation</key>
      <string>Portrait</string>
      <key>UILaunchImageSize</key>
      <string>{320, 480}</string>
    </dict>
  </array>

[jdによる編集:「UILaunchImages」のスペルを修正]

73
WWW

プロジェクトブラウザでプロジェクトをハイライトし、「一般」を選択し、「アプリアイコン」までスクロールダウンし、「アセットカタログを使用」をクリックして、「移行」を選択します。既存のアイコンとスプラッシュスクリーンは、自動的にアセットカタログに移行されます。その後、カタログを選択して、さらに画像を追加できます。

新しい画像を追加するには、Finderからドラッグして、各画像タイプの四角形にドロップします。

(注意:カタログエディターは不可解にスクロール不可のワイド形式を使用しているため、画面の幅が十分でない場合、右側にあるものが欠落する可能性があります。)

8
Hot Licks

Xcode 5の新しい イメージカタログ 機能を使用して、複数のバージョンの起動イメージを管理することもできます。

5

IOS 7用に開発した古いアプリでも同じ問題が発生しました。Xcode6では問題なくアーカイブおよびアップロードされましたが、Xcode 7では「バイナリがiPhone5用に最適化されていません」というエラーが返されました。他の無数のソリューションを試した後、起動イメージへのすべての参照を削除することでのみ成功し(ユニバーサル.xibを使用していたため)、展開ターゲットを7.0から8.0に設定しました

0
rswayz

これで、images.xcassetsにアプリのアイコンとスプラッシュ画像を直接追加できます。+ボタンをクリックして、iOS 5、6、7、iphone4、iPadでiphone5のそれぞれの画像セットを追加します。 default.png、default @ 2x.pngのような画像名を設定する必要がなくなりました

0
Pravin

Images.xcassetsリポジトリを使用する場合、スプラッシュ画面をローカライズすることはできませんので注意してください。

現在、アプリのフランス語版と英語版を取得しようとしています。

WWW>スプラッシュ画面をローカライズする必要がある場合、この「plist」メソッドは機能しますか?

0
Timi