IPhone 6/iPhone 6 Plusサポートを追加しようとしている既存のランドスケープ専用アプリがあります。 iOS 6/7をサポートしていたとき、デフォルトの名前の起動ポートレート画像を使用し、横向き画像を縦向きに回転させました(4インチ画面の場合は横向き1136x640を作成し、回転して640×1136起動画像を作成しました)。
IOS 8とiPhone 6/6 +で動作するものを取得しようとしていますが、まだ動作するものを思いつきません。ここに私が試したものがいくつかあります:
IOS 8 GMでのみランドスケープ起動画像が機能するようにする回避策を見つけました。最終的にInfo.plistのUILaunchImages配列を使用しました。トリックは、重複するエントリを指定する必要があるランドスケープ(iPhone 4/4S、iPhone 5/5S/5C、iPhone 6)を明示的にサポートしていない画像を表示することです。以下の例を参照してください。これは、iPadの両方の方向をサポートするランドスケープ専用の電話アプリ用です。 iOS 7はデフォルトの画像名にフォールバックします。
すべてのiPhone起動画像は、iPhone 6 Plus起動画像を除き、通常どおり縦向きに回転する必要があります。横向きの起動画像をネイティブでサポートしているため、横向きの起動画像のままにしておく必要があります。
Info.plistの関連ビットを次に示します。
<key>UILaunchImages</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{320, 480}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{320, 480}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-568h</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{320, 568}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-568h</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{320, 568}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-667h</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{375, 667}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-667h</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{375, 667}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-736h</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{414, 736}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-736h</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{414, 736}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-Portrait</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{768, 1024}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-Landscape</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{768, 1024}</string>
</dict>
</array>
IPhone 6などのパターンが変更されました
iPhone 6(750x1334):
Default-375w-667h@2x~iphone.png
iPhone 6 Plus:(1242x2208)
Default-414w-736h@3x~iphone.png
[email protected](風景用)
IPadをサポートしている場合は、iPadのデフォルト画像の名前を変更して〜ipadを追加する必要があります。 Default-Portrait〜ipad.pngは、6 plusが3x画像をオーバーライドするため、それらをピックアップしないようにします。
次の手順は私のために働いた:
そして、それはiOS7、iOS8のデバイスの種類ごとに機能しました。注:新しいLaunchImageアセットを確認すると、本当に奇妙なことがわかります。 iPhone6またはiPhone 6plusの解像度の画像を含まない少数の画像のみが含まれているようです。
Images.xcassetsのみを使用している場合、「スクリーンファイルの起動」は空である必要があります。助けてくれました。
iPhone 6の場合:
ポートレートでは750 x 1334(@ 2x)
横向きの場合は1334 x 750(@ 2x)
iPhone 6 Plusの場合:
ポートレートの場合、1242 x 2208(@ 3x)
2208 x 1242(@ 3x)横向き
または、このリンクをたどることができます
http://matthewpalmer.net/blog/2014/09/10/iphone-6-plus-launch-image-adaptive-mode/
これは@AlexArgoの回答のフォローアップで、ランドスケープのみのiOS 9対応アプリがiOS 9 iPhoneで適切な起動画像を表示するように拡張します。その答えと同様に、資産カタログ、ストーリーボード、またはxibは必要ありません。
これらの追加なしでは、iOS 9 iPhoneでランドスケープ専用アプリを起動すると、iOS 8と同じ画像が表示されますが、画像は時計回りに90度回転し、反対方向の寸法に引き伸ばされることで歪むという動作が見られました。
このソリューションには2つの部分があります。
Info.plist
のUILaunchImages
配列@ AlexArgoの回答からのiOS 8アイテムの前に追加します。以下のiOS 9アイテムで参照されている新しい起動画像(例:Default-iOS9-568h
)をアプリに追加します。新しい起動画像はactual「ランドスケープ」-方向画像(背が高いよりも幅が広い)、開始した@AlexArgoのiOS 8アイテムが参照する画像とは異なります横向きの画像として表示されますが、アプリに追加される前に縦向きに回転されました。このソリューションがiOS 8と9で同時に動作するには、両方の画像セットがアプリに残っている必要があることに注意してください。
<key>UILaunchImages</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default-iOS9</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{320, 480}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default-iOS9-568h</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{320, 568}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>9.0</string>
<key>UILaunchImageName</key>
<string>Default-iOS9-667h</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{375, 667}</string>
</dict>
...(pre-iOS 9 items)...
</array>
IPad(ランドスケープおよびポートレートモード)を使用するには、info.plistにILaunchImages〜ipadキーを追加する必要があります。
<key>UILaunchImages~ipad</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-Landscape</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{768, 1024}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-Portrait</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{768, 1024}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-Landscape</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{748, 1024}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-Portrait</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{768, 1004}</string>
</dict>
</array>
私がやったことは、起動イメージにアセットカタログを使用しないようにプロジェクトを変更し、iOS7以前の古い手法を使用することです。これにより、iOS7以前で動作する起動イメージが取得されます。
正しい解像度を取得し、新しいiPhone 6/+向けにビルドされたアプリを認識できるように、iOS8でも機能させるには、新しいLaunchImage XIBを作成し、Xcodeにそれを使用するように指示する必要があります。
IOS8デバイスでアプリを起動すると新しいXIBテクニックが使用され、iOS7以前のデバイスでアプリを起動すると、あなたが知って愛するようになった画像が使用されます。
私にとってこれはうまくいくようです。 MOいIMOですが、動作します。
これが一部の人々に役立つことを願っています。
プラスを除くすべてのiPhoneには、横向き専用アプリ用の個別の起動画面はありません。 Deeplistで説明したようにplistで方向を設定してから、portrait起動画面を横向き起動画面の回転バージョンに設定します。
これは常にそうであり、変更された唯一のことは、プラスが個別の異なるランドスケープ起動画面をサポートするようになったことです。他のすべてのデバイスは、アプリの開始方向に関係なく、ポートレート起動画面のみをサポートします。
[email protected]を追加するだけで、Landscapeでも修正されます。また、iPhone 6およびiPhone 6 Plus用のランドスケープ専用アプリもありますが、問題なく動作します!