23

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

4

6 に答える 6

73

簡潔な答え

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

バックグラウンド

次のキーを使用します。

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

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

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

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

UILaunchImageSize –幅と高さを指定する文字列。例: 「{320, 480}」。縦向きのデバイスに対して幅と高さを指定する必要があります。つまり、同じデバイスを対象とする縦長の画像と横長の画像は、同じ幅と高さになります。

このキーが存在する場合、iOS 7 は起動イメージを取得するためにのみそれを使用します。

BUT: iOS7 でも命名規則に固執することが大いに役立つことがわかりました!

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

わかりました – では、次は何ですか?

iOS6 用の起動イメージと、それらの特定の命名規則をすべて持っていたからです。私はそれらすべてのコピーを作成し、名前の前に「iOS7-」を付けて、さまざまなサイズと名前についての混乱を避けることにしました。ほとんどの画像がすぐに正しく読み込まれるため、接頭辞を作成すると便利です。

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

  • Default.png(320x480)
  • デフォルト@2x.png(640x960)
  • デフォルト@2x~ipad.png(2048x1496)
  • デフォルト~ipad.png(768x1004)
  • デフォルト1024x768.png(1024x768)
  • デフォルト1024x768@2x.png(2048x1536)
  • デフォルト-568h@2x.png(640x1136)
  • デフォルト768x1024.png(768x1024)
  • デフォルト768x1024@2x.png(1536x2048)
  • Default-Landscape~ipad.png(1024x748)
  • Default-Portrait@2x~ipad.png(1536x2048)

そこで、iOS7 用のこれらすべてのファイル名 (同じサイズ) のコピーを作成し、「iOS7-」というプレフィックスを付けました。

  • iOS7-Default.png
  • iOS7-Default@2x.png
  • ...

XCode で

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

書く: UILaunchImages

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

以下の図をテキストのガイドとして使用し、すべてが終了したときにどのように表示されるかを示します。

ここに画像の説明を入力

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

UILaunchImages を右クリックし、[行の追加] を選択します。この新しい行 (アイテム 0) を右クリックし、値のタイプ「Dict」を選択します。</p>

三角形のインジケーターでこのアイテムを開き続け、右クリックして「行を追加」</p>

このアイテムに名前を付けUILaunchImageMinimumOSVersion、値のタイプを「string」に設定し、文字列を「7.0」に設定します</p>

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

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

UILaunchImageOrientation- 例: ポートレート

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

ノート:

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

UILaunchImageFile~ipad … = ”デフォルト” – これでOK

UILaunchImages~ipad … iOS6 バージョンを誤って保持しているため、iOS7 バージョンに更新する必要がある 2 つの項目がありました。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」の綴りを修正]

于 2013-09-27T09:45:45.920 に答える
8

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

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

(注意: カタログ エディターは、不可解なことに、スクロールできないワイド フォーマットを使用しており、画面の幅が十分でない場合、右側から見逃す可能性があります。)

于 2014-01-24T22:51:40.737 に答える
0

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

于 2014-01-09T07:49:17.330 に答える
0

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

于 2015-10-31T08:28:31.340 に答える