在我们进行机型适配时,果果固定了写死的320*480,那么你在其他机型上会出现很多偏差,例如:你在iPhone5S上固定的高度到了iPhone6或者iPhone6P上,这时底部就会出现高度不够的尴尬,且在屏幕的上下方都会留出一道黑色边那么这个时候如何让系统知道所运行的机型呢,一般都是宏定义如下:
#define ScreenWidth [UIScreen mainScreen].bounds.size.width
#define ScreenHeight [UIScreen mainScreen].bounds.size.height
这样固然可以获取当前机型的屏幕大小,其实苹果在启动图上就帮我们做了一下适配。
运行程序进入App的时候,会立即显示一张图片,这张图片就是启动图片(Launch Image)。App在正式启动的时需要做一些初始化处理,这通常比较费时。先出现启动图片,可以使用户觉得系统正在响应,减少等待的焦虑感。
每个机型,比如同时支持iPhone和iPad的程序,需要分别为iPhone跟iPad指定启动图片。当旧的iPhone 5S的程序,运行在iPhone 6上面,没有iPhone 6的启动图片,就采用兼容模式,上下留黑边。当为iPhone 6指定了新的启动图片,系统就认为这个应用程序是已经适配了iPhone 6的,上下就不会留黑边了,且就是全屏的了。因此我们需要为每一个机型适配一张启动图,添加启动图就是拖一下文件在相应的屏幕上,因此很简单,其实还有另一种设置启动图的如下:
打开 工程文件---->Assets.xcassets---->LaunchImage.launchimage---->Contents.json 进行如下配置即可,当然,也要先导入启动图的。
Contents.json这个文件是资源信息,这里记录了每个图标的大小名称等信息:
原文件如下,最好复制粘贴防止出错哦!
{
"images" : [
{
"extent" : "full-screen",
"idiom" : "iphone",
"subtype" : "736h",
"filename" : "1242x2208.png",
"minimum-system-version" : "8.0",
"orientation" : "portrait",
"scale" : "3x"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"subtype" : "667h",
"filename" : "750x1334.png",
"minimum-system-version" : "8.0",
"orientation" : "portrait",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"filename" : "640x960.png",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"subtype" : "retina4",
"filename" : "640x1136.png",
"minimum-system-version" : "7.0",
"orientation" : "portrait",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}