I need to create and app which will run on iPhone 4S, 5,5S, 6, 6+ and the deployment target will be iOS 7.1. I saw Apple introduced LauchScreens.xib for creating the launch screen (Splash Screen) and also there is an Image Assets in which I can provide the Launch Images screens. See image below:
So my questions is how can I use the splash screen for all the iPhones? Or I should say, what is the standard way to to do that when I am using Xcode 6?
I have been looking for the answers and reading blogs and Apple's Documents as well but I didn't find anything. Everything was singing its own song but not the answer.
In Xcode6 for all devices splash screen you need to make splash image for each device size retina and non retina.
Best way of done this thng use asset Catalog from target-->general like following screenshot:
when you tap the right small arrow near of launchImage (->) you can see the following window:
Currently there is empty because from right side there is no any target selected so if your deployment target is 6.0 you need to set check mark like following screenshot so you can see the all image need box :
See when you add wrong dimension image in catalog you can get warning at top right corner and when you tap on this warning you can get actually dimension. see the following screenshot for:
So from the warning log you can know which dimension image need for which splash screen.
Other way
No need to use Asses Catalog and no need to use LaunchScreen.xib you can still use old way:
create splash screen image with following size:
Default-568h.png 320 x 568
Default-568h@2x.png 640 x 1136
Default-667h@2x.png 750 x 1334
Default-736h@3x.png 1242 x 2208
Default.png 320 x 480
Default@2x.png 640 x 960
Now in plist you need to add following data:
- Add one row by tap (+) its called
UILaunchImages
- and you need to fill this row like following
that's it no need to do any thing hope that answer helps to other as well.
In Xcode 6.4, as of 2015-07-06 (yyyy-mm-dd), I used launch images rather than a launch screen file (.xib). This is targeting iOS 7.1+.
First, delete the entry from the Launch Screen File drop down. Leave this blank, if this points to a .xib the .xib will override the launch images source. Here is the setup in Target / General / App Icons and Launch Images.
Second, create a new Launch Image (NOT a new Image Set) after selecting the “+” at the bottom of the middle pane in Images.xcassets. Here is the pop-up after you select the “+”.
Third, in the new Launch Image, there will be 20 squares, each asking for .png file. Now you need to create 20 .png files of the correct size. I used Pixelmator and exported each file as a .png. But what is the “correct size”? See below.
Launch Images Correct Size Chart
'*No Status BarI have been playing around Xcode 6 from sometimes now and what I found is LaunchScreen.xib
works for iOS 8
only, so if you want to provides launch image for all your devices, your app supports you can do as below..
For Device using iOS 7 you can do as usual, what we used to do using images.xcassets
For iOS 8 devices you have two ways..
Simply you can use
this image show how Xcode by defaults setsLaunchScreen.xib
.LaunchScreen.xib
for iOS 8 launch screen file.- If you don't want to set
LaunchScreen.xib
as launch screen file and want to display some launch image as you want in iOS 7 device, so just remove launch screen file name and make it blank(see below image) and deleteLaunchScreen.xib
file fromXcode
. In this case iOS 8 device also takes launch image from launch images fromimages.xcassets
.
- If you don't want to set
The new way of doing splash screens for iOS 8 onwards is to define a LaunchScreen.xib
file. This is also available as a new Resource file type in XCode 6.
This new XIB will use AutoLayout and the new size classes to determine how you want to layout your splash screen.
It is not very clear how the backward compatibility of this will work if you want to support older devices. I figure it will not work.
You can set the launch.xib in the target properties first screen in your XCode project.
If you want to use the old way you can still define splash PNGs to use as launch images, that continues to be fully supported. From what I see, this is still the only way to go if you want to support old iOS versions.
Note that if you want to support the new resolutions of iPhone 6 / 6 Plus, then you must define either a launch xib or put the correctly sized PNGs in your asset catalog, or else you will get the blurry autoscaled UI that old apps get in compatbility mode.
来源:https://stackoverflow.com/questions/25967792/how-to-integrate-splash-screen-for-all-types-of-iphones-in-xcode-6-1