Ios – Supporting iPhone 6 and iPhone 6+ with different launch/splash screen image for iPad Portrait and Landscape orientations

cocoa-touchiosios8iphone-6iphone-6-plus

What I understood from the available documentation and my testing is that

  1. All existing Apps on iPhone 6 and 6 Plus run in compatibility mode,
    which means the APIs (like [UIScreen mainScreen].bounds) will
    return 320×568 (iPhone 5/5s) still in new iPhones (6/6 Plus) and
    all UI is scaled to the correct resolution by iOS.

  2. To support iPhone 6/6Plus we need to create xib for Launch Screen
    (File->New->File->UserInterace->Launch Screen) and set the nib file
    as "Launch Screen File".

  3. We can set different images for launch screen inside Launch screen nib file based
    on avaialble size classes. [Basically combinations of Any, regular
    and compact]

  4. There is no way to differentiate between iPad in portrait and iPad
    in Landscape orientation (both are regular width regular height).
    Also there no way to differentiate between iPhone 4/4s and iPhone
    5/s.

Is there a way I can support iPhone 6/6 Plus mode and also provide different launch images for iPad in portrait and iPad in landscape orientation?

See also the similar problem here iOS 8 size classes for iPad landscape

Best Answer

You donĀ“t have to use the launch screen file to make your App iPhone 6 / 6+ resolution compatible. Instead, you can select the LaunchImage asset as your Launch Images Source.

It can be found at "App Icons and Launch Images" under your Targets:

enter image description here

If there is no LaunchImage asset just go to your Images.xcassets, make a secondary click (right click) and select "New Launch Image":

enter image description here

The result is something like that:

enter image description here

Now just drag and drop your images for the specific resolutions you want to support and set the created LaunchImage asset as your source.

Hope it helps

Cheers