在ios8下,apple对启动界面的设置做了重大调整,新增了一个xib文件(LaunchScreen.xib)作为应用的程序的启动界面。该文件只对ios8之后的系统有效。如果应用程序只支持ios8之后的系统,那么设置启动界面只要通过这个xib文件设置就可以了。
在ios7下,设置app的启动界面是通过静态图片来设置的,apple要求为不同屏幕尺寸的手机准备不同的尺寸的图片。在程序启动时,系统会自动根据当前手机屏幕的尺寸加载对应的启动图片来作为启动界面。启动图片统一放在images.xcassets文件夹下面的LaunchImage里面。
如果应用程序要同时支持ios7和ios8版本,这时设置启动界面就要注意:
分两种情况:
一、不使用LaunchScreen.xib文件(删除LaunchScreen.xib)
1> 将启动图片添加到images.xcassets文件夹下面的LaunchImage里面。
2> 必须提供各种尺寸的启动图片。
* iphone4 非retina 320 * 480 Default.png
* iphone4s 640 * 960 [email protected]
* iphone5,5s,5c 640 * 1136 [email protected]
* iphone6 750 * 1334 [email protected]
* iphone6 1242 * 2208 [email protected]
3> 在iphone 6系统下,如果没有提供iphone6对应的启动图片,则系统会自动查找其他启动图片作为启动图片。查找方式是:
* 看是否提供了iphone5,5s,5c对应的启动图片,有则拿来使用。此时app窗口的尺寸为320*568。否则继续查找。
* 看是否提供了iphone4s对应的启动图片,有则拿来用,此时app窗口的尺寸为320*480。否则继续查找。
* 看是否提供了iphone4对应的启动图片,有则拿来用,此时app窗口的尺寸为320*480。
* 如果最终没有找到可用的启动图片,则系统会使用一张尺寸为320*568的黑色图片作为启动图片。此时窗口的尺寸为320*568。
* 经过上面的查找过程,如果使用的启动图片是针对iphone4,4s的,那么整个屏幕的会上下留出一块黑色区域。而如果使用的启动图片是针对iphone5,5c,5s,则不会出现这种情况。
原因是:应用程序最终的尺寸大小取决于启动界面的大小。也就是app最终尺寸的大小取决于启动图片尺寸的大小。 iPhone5,5c,5s的屏幕宽高比(320*568)和iphone6的屏幕宽高比(375*667)一样,这种情况系统会将应用程序的尺寸拉伸为整个屏幕尺寸的大小。而iphone4,4s的屏幕宽高比和iPhone6的屏幕高比是很不一样的,如果也是通过拉伸的话,必然会导致变形的现象。所以苹果采用了上下留出一块黑色区域的方式来保持原来的宽高比。
4> 在iphone 6 plus系统下,如果没有提供iphone 6 plus对应的启动图片。
* 在Xcode6.4之前的版本,系统不会继续查找,会自动使用一张全黑的全屏图片作为启动图片。(为什么没有提供iphone6对应的启动图片,系统会去查找其他图片,而iphone6 plus不会? 猜想原因是iphone6 plus的启动图片格式是@3x,和@2x不是同级别的)
* 在 Xcode6.4之后的版本,则系统会自动查找其他启动图片作为启动图片。查找方式和 iphone 6 系统下的查找方式一样。
注意点:在删除LaunchScreen.xib文件的情况下,如果LaunchImage文件夹下面没有任何图片,
> 应用运行在4/4s 手机上,则app窗口的尺寸为320 * 480。
> 应用运行在5/5c/5s/6/6p 手机上,则app窗口的尺寸为320 * 568。
二、使用LaunchScreen.xib文件
1> 当应用程序运行在ios8系统下时,只会采用LaunchScreen.xib文件作为启动界面。而不管是否提供了对应的启动图片在images.xcassets文件夹下面的LaunchImage里面。
2> 在ios7仍然会去images.xcassets文件夹下面的LaunchImage里面去查找对应的启动图片。