各种机型屏幕适配

在我们进行机型适配时,果果固定了写死的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"
  }
}


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值