`

iOS 屏幕尺寸

阅读更多

OS 设备现有的分辨率如下:
iPhone/iPod Touch
普通屏                     320*480 点       320像素 x 480像素       iPhone 1、3G、3GS,iPod Touch 1、2、3
3:2 Retina 屏        320*480点      640像素 x 960像素        iPhone 4、4S,iPod Touch 4
16:9 Retina 屏       320*568点        640像素 x 1136像素      iPhone 5,iPod Touch 5

iPad
普通屏                 768像素 x 1024像素      iPad 1, iPad2,iPad mini
Retina屏                  1536像素 x 2048像素     New iPad,iPad 4

普通屏 1点 = 1像素
Retina屏 1点 = 2像素

完整的图像:
一套320*480像素
一套640*960像素
一套640*1136像素

从上面的设备参数来看,iOS视网膜屏幕的设备,是在同等尺寸上,支持的分辨率的宽和高各增加了一倍,解析度(每英寸像素数)增加了一倍。

即显示在同样尺寸的空间上,所需要的图片素材的尺寸需要增加一倍,具体到实践上面有两个要点:
3.1.原生控件中图片素材的支持

√ 需要在非Retina屏幕的图片素材基础上,额外提供宽和高各一倍的图片素材
√ 命名上需要命遵从如下命名规则:假定非Retina屏幕的图片素材为filename.png,则需要将宽和高各一倍的图片素材命名为filename@2x.png
注意:@2x必须小写

 

AppIcon
ios6
57*57
114*114  Retina
ios7
58*58(iPhone Spotlight ios5,6 Settings ios5-7  29pt)
80*80(iPhone Spotlight ios7 40pt)
120*120(iPhone Ap ios7 60pt)

LaunchImages
320*480
640*960 Retina(3.3-inch)
640*960 Retina(4-inch)

开始之前,首先回顾一下iOS7初体验(1)——第一个应用程序HelloWorld中的一张图,如下所示:

 

 

本文分享一下Images.xcassets的体验~_~

 

1. 打开此前使用过的HelloWorld项目,然后单击并打开导航区域中的Images.xcassets,看看都有些什么东东:]:

 

 

 

2. 在图中可以看到中间位置有两个虚线框,感觉应该可以直接拖文件进来。OK,那就先准备一下资源文件,如下图所示:

 

 

说明:为方便起见,除Icon7.png之外,其他图标的文件名均沿袭了以往iOS图标的命名规则。

 

3. 将Icon-Small@2x.png拖拽到第一个虚线框中,将Icon7.png拖拽到第二个虚线框中,如下图所示:

 

 

 

 

说明Icon-Small@2x.png的尺寸是58*58像素的,而Icon7.png的尺寸是120*120像素的。另外,如果拖入的图片尺寸不正确,Xcode会提示警告信息。

 

4. 上图中单击实用工具区域的最右侧Show the Attributes inspector(显示属性检查器)图标,能够看到图像集的属性,勾选一下iOS 6.1 and Prior Sizes看看会发生什么变化?

 

 

 

 

5. 分别将Icon-Small.pngIcon.pngIcon@2x.png顺序拖拽到三个空白的虚线框中,完成之后的效果如下图所示:

 

 

 

 

6. 右击左侧的AppIcon,在弹出的辅助菜单中选择Show in Finder,看看刚才拖拽都做了哪些工作:

 

 

 

 

 

7. 图中除了Contents.json这个文件陌生之外,其他文件都是刚刚拖拽进Xcode的,双击查看一下Contents.json文件内容:

 

  1. {  
  2.  "images" : [  
  3.     {  
  4.      "size" : "29x29",  
  5.      "idiom" : "iphone",  
  6.      "filename" : "Icon-Small.png",  
  7.      "scale" : "1x"  
  8.    },  
  9.     {  
  10.      "size" : "29x29",  
  11.      "idiom" : "iphone",  
  12.      "filename" : "Icon-Small@2x.png",  
  13.      "scale" : "2x"  
  14.    },  
  15.     {  
  16.      "size" : "57x57",  
  17.      "idiom" : "iphone",  
  18.      "filename" : "Icon.png",  
  19.      "scale" : "1x"  
  20.    },  
  21.     {  
  22.      "size" : "57x57",  
  23.      "idiom" : "iphone",  
  24.      "filename" : "Icon@2x.png",  
  25.      "scale" : "2x"  
  26.    },  
  27.     {  
  28.      "size" : "60x60",  
  29.      "idiom" : "iphone",  
  30.      "filename" : "Icon7.png",  
  31.      "scale" : "2x"  
  32.     }  
  33.   ],  
  34.  "info" : {  
  35.    "version" : 1,  
  36.    "author" : "xcode"  
  37.   }  
  38. }  

 

内容一目了然啊,哈哈,以后再也不用去特意记住每个尺寸的图标分别应该叫什么名字了,不知道您会不会,反正我每次都是粘贴复制的,呵呵。以后,只要通过拖拖拽拽就搞定了~_~

 

8. 图标搞定了,启动图片照做就OK了,具体操作差别不大,完成之后的示意图如下:

 

 

 

 

9. 再看一下Finder中的内容,如下所示:

 

 

 

 

10. 在Finder中不难发现多出了两个文件,分别是:Default@2x-1.pngDefault-568h@2x-1.png,双击打开对应的Contents.json文件,内容如下:

 

  1. {  
  2.  "images" : [  
  3.     {  
  4.      "orientation" : "portrait",  
  5.      "idiom" : "iphone",  
  6.      "extent" : "full-screen",  
  7.      "minimum-system-version" : "7.0",  
  8.      "filename" : "Default@2x.png",  
  9.      "scale" : "2x"  
  10.    },  
  11.     {  
  12.      "extent" : "full-screen",  
  13.      "idiom" : "iphone",  
  14.      "subtype" : "retina4",  
  15.      "filename" : "Default-568h@2x.png",  
  16.      "minimum-system-version" : "7.0",  
  17.      "orientation" : "portrait",  
  18.      "scale" : "2x"  
  19.    },  
  20.     {  
  21.      "orientation" : "portrait",  
  22.       "idiom" : "iphone",  
  23.      "extent" : "full-screen",  
  24.      "filename" : "Default.png",  
  25.      "scale" : "1x"  
  26.    },  
  27.     {  
  28.      "orientation" : "portrait",  
  29.      "idiom" : "iphone",  
  30.      "extent" : "full-screen",  
  31.      "filename" : "Default@2x-1.png",  
  32.       "scale" : "2x"  
  33.    },  
  34.     {  
  35.      "orientation" : "portrait",  
  36.      "idiom" : "iphone",  
  37.      "extent" : "full-screen",  
  38.      "filename" : "Default-568h@2x-1.png",  
  39.      "subtype" : "retina4",  
  40.      "scale" : "2x"  
  41.     }  
  42.   ],  
  43.  "info" : {  
  44.    "version" : 1,  
  45.    "author" : "xcode"  
  46.   }  
  47. }  

 

11. 将其中的"filename": "Default@2x-1.png""filename" : "Default-568h@2x-1.png"分别改为"filename": "Default@2x.png""filename" : "Default-568h@2x.png",保存并返回Xcode看看会发生什么?

 

 

修改后的Contents.json内容如下:

 

  1. {  
  2.  "images" : [  
  3.     {  
  4.      "orientation" : "portrait",  
  5.      "idiom" : "iphone",  
  6.      "extent" : "full-screen",  
  7.      "minimum-system-version" : "7.0",  
  8.      "filename" : "Default@2x.png",  
  9.      "scale" : "2x"  
  10.    },  
  11.     {  
  12.      "extent" : "full-screen",  
  13.      "idiom" : "iphone",  
  14.      "subtype" : "retina4",  
  15.      "filename" : "Default-568h@2x.png",  
  16.      "minimum-system-version" : "7.0",  
  17.      "orientation" : "portrait",  
  18.      "scale" : "2x"  
  19.    },  
  20.     {  
  21.      "orientation" : "portrait",  
  22.       "idiom" : "iphone",  
  23.      "extent" : "full-screen",  
  24.      "filename" : "Default.png",  
  25.      "scale" : "1x"  
  26.    },  
  27.     {  
  28.      "orientation" : "portrait",  
  29.      "idiom" : "iphone",  
  30.      "extent" : "full-screen",  
  31.      "filename" : "Default@2x.png",  
  32.       "scale" : "2x"  
  33.    },  
  34.     {  
  35.      "orientation" : "portrait",  
  36.      "idiom" : "iphone",  
  37.      "extent" : "full-screen",  
  38.      "filename" : "Default-568h@2x.png",  
  39.      "subtype" : "retina4",  
  40.      "scale" : "2x"  
  41.     }  
  42.   ],  
  43.  "info" : {  
  44.    "version" : 1,  
  45.    "author" : "xcode"  
  46.   }  
  47. }  

 

12. 分别选中下方的"Default@2x-1.png"和"Default-568h@2x-1.png",按删除键删除这两个文件,删除之后的效果如下图所示:

 

 

删除之后Finder中的内容如下所示:

 

 

13. 接下来我们新建一个图像试试看如何操作,开始之前我们仍然需要准备一下素材,如下图所示:

 

 

说明:为了方便在运行时看出不同分辨率的设备使用的背景图片不同,我在素材图片中增加了文字标示。

 

14. 将准备好的三个Background直接拖拽到Xcode中,完成之后如下图所示:

 

 

 

 

15. 单击右侧Devices中的Universal,并选择Device Specific,然后在下方勾选iPhoneRetina 4-inch,同时取消勾选iPad,完成之后如下图所示:

 

 

 

16. 将下方Unassigned中的图片直接拖拽到右上角R4位置,设置视网膜屏使用的背景图片,如下图所示:

 

 

 

17. 单击并打开Main.storyboard,选中左侧的View Controller,然后在右侧File Inspector中,取消勾选Use Autolayout选项,如下图所示:

 

 

 

18. 从右侧工具栏中拖拽一个UIImageViewView Controller主视图中,处于其他控件的最底层。同时调整该UIImageView的尺寸属性,如下图所示:

 

 

 

 

19. 设置该UIImageView使用的图像,如下图所示:

 

 

 

20. 在不同屏幕的模拟器上运行HelloWorld应用,可以看到如下三张图示。

 

 

 

 

 

 

OK!Images.xcassets的初体验一文至此算是告一段落,现做一下简单的小节:

 

1. 有过Xcode以前版本使用经验的朋友应该会发现,从Xcode 5开始已经无需再去记住Icon.png和Default.png针对不同分辨率使用的文件名了;

 

2. Xcode 5针对4存视网膜屏的图像提供了单独的支持,解决了以往在兼容四存屏时,有时不得不需要编写专门的代码加载不同的图片;

 

3. Image.xcassets更加便于管理和维护;

4. 注意:启动图片的PNG图片不要使用透明图片

分享到:
评论

相关推荐

    详解iOS 关于字体根据不同屏幕尺寸等比适配的问题

    主要介绍了详解iOS 关于字体根据不同屏幕尺寸等比适配的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    获取屏幕尺寸

    iOS开发中,如何获取屏幕尺寸。CGRect

    swift-Inch-优雅的iPhone不同尺寸屏幕精准适配工具

    Inch - 优雅的iPhone全尺寸屏幕精准适配工具

    iOS应用开发中使用Auto Layout来适配不同屏幕尺寸

    Auto Layout 是苹果在 Xcode 5 (iOS 6) 中新引入的布局方式,旨在解决 3.5 寸和 4 寸屏幕的适配问题。屏幕适配工作在 iPhone 6 及 plus 发布以后变得更加重要,而且以往的“笨办法”的工作量大幅增加,所以很多人...

    iOS界面布局库

    如果您还在通过代码使用frame进行界面布局,但是对位置计算和屏幕尺寸感到厌烦;如果您在使用AutoLayout进行界面布局,但是对其中的约束难以控制和更新,以及因为约束代码而激增您的代码量;如果您希望您的IOS6版本...

    移动开发css文档

    ios移动开发webview,css文档

    iOS如何获取屏幕宽高、设备型号、系统版本信息

    在我学习Android开发的时候,觉得设备适配是件很头疼的事情,android的设备太多了,那时就很羡慕iOS开发的人不用操心适配的问题,而当我开始学习iOS开发后,iOS的屏幕也开始多种多样了起来…于是也得做适配了,sad…...

    AwesomeModal:自定义模态窗口以更改文本

    针对所有iOS屏幕尺寸和横向模式进行了调整。 具有UITextfield输入和自定义过渡的自定义模态抽象窗口。 模态窗口旨在调用整个控制器,通过调用委托返回设置标题,文本字段文本和新值。 安装将控制器从情节提要板复制...

    JBSpacer:确定可调整大小的网格的最佳间距

    JB垫片随着 iOS 屏幕尺寸的数量不断增加,设计一个在任何尺寸下看起来都平衡的规则项目网格变得越来越困难。 JBSpacer 计算项目网格的最佳间距,同时保持内边距和外边距大小之间的指定比例。 这是包含的项目中的一个...

    ios开发技巧总结.docx

    Auto Layout与Size Classes:灵活布局是iOS开发中重要的一环,掌握Auto Layout可以帮助你创建在不同屏幕尺寸和方向上都能良好展示的界面。 Reactive Programming:如RxSwift或Combine框架可以简化事件处理和数据流...

    iOS开发~UI布局

    直到iPhone6发布后,目前iOS设备的屏幕尺寸已经有4种了,如图:iPhone6没出现之前,还可以通过代码来适配两种尺寸的UI,但iPhone6发布后,渐渐的发现以前的方式可能真的要淘汰了,因为以后可能还要面对更多的屏幕...

    iosScreenCalc:基本的Python代码,用于计算iOS(iPhone和iPad)设备的屏幕尺寸(以像素为单位)

    iosScreenCalc 基本的Python代码,用于计算iOS(iPhone和iPad)设备的屏幕尺寸(以像素为单位)

    ios开发介绍及心得.docx

    iOS开发是针对Apple公司的iOS操作系统(iPhone、iPad等设备)... - Auto Layout是一种用于设计自适应界面的技术,使得应用能够适应不同屏幕尺寸和设备方向。 - 了解Auto Layout的使用可以更好地实现界面的响应式布局。

    ios7图标设计规范

    新版ios7对桌面图标做了调整,在iphone4s或5 Retina屏幕上,桌面图标由原来的114px,变为了120px。 附件内含ios7图标设计模板,以及用到的所有尺寸。 另附ios7系统字体。

    IOS 屏幕适配方案实现缩放window的示例代码

    后来不同尺寸的iPad相继出现,本来应该会出现屏幕不能适配的问题,但是由于该项目没有设置启动图,页面会自动等比例缩放撑满整个屏幕,各分辨率的宽高比相差不多,所以并没有出现太大问题。但是2020年3月4日,苹果...

    ios使用autolayout布局改变心得1

    由于ios8的发布,屏幕尺寸的变化,之前兼容ios5的应用,现在决定放弃ios5的兼容,改用兼容ios6开始!之前纯代码的编程方式要改变一下了,现在记录一下学习

    ios-Auto Layout的使用.zip

    外部变化包括用户改变窗口大小(OS X)、旋转设备(iOS)、在iPad上进入或离开分割视图(iOS)、不同屏幕尺寸,内部变化包括app显示内容长度变化、字体大小变化、对国际化的支持等。 源码地址: 详细介绍:

    ios-全自动化的文字适配.zip

    特性: 1、全自动化,支持自定义字体,不需要手动一个一个适配。 2、有两种适配样式: 1)...6、支持不分屏幕尺寸,统一修改字体大小。 查看详细使用说明请移步到gitHub地址:https://github.com/04zhujunjie/JJFontFit

Global site tag (gtag.js) - Google Analytics