`

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的屏幕尺寸和分辨率至关重要。iOS设备有多种屏幕尺寸,如iPhone的3.5英寸、4英寸、4.7英寸、5.5英寸以及...

    最新Android & iOS设计尺寸规范.docx

    iOS设备通常有几种固定的屏幕尺寸,如iPhone SE、iPhone 12系列等,而Android设备则有着更广泛的尺寸范围。因此,设计师需要进行响应式布局,确保界面在各种屏幕尺寸下都能良好展示。 总结来说,理解并遵循Android...

    几行代码帮你完成ios屏幕适配Demo

    在iOS开发中,屏幕适配是一项至关重要的任务,因为设备的屏幕尺寸和分辨率各不相同,包括iPhone、iPad以及不同版本的iOS系统。本Demo旨在通过几行代码帮助开发者快速理解并实现iOS应用的屏幕适配,确保在各种设备上...

    IOS屏幕适配

    在 IOS6 之前,屏幕适配一般使用 autosize,设置视图与父视图的尺寸关系。但是,autosize 有两个缺陷:不能设置视图与视图之间的关系,不能设置尺寸放大、缩小的最大值、最小值。 在 IOS6 之后,使用自动布局...

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

    "swift-Inch-优雅的iPhone不同尺寸屏幕精准适配工具"是一个专为解决iPhone不同尺寸屏幕适配问题而设计的工具,其核心是Inch库,旨在帮助开发者更优雅地处理iOS设备的屏幕尺寸差异,确保应用在所有iPhone上都能呈现出...

    IOS屏幕图片循环切换缩放

    在iOS开发中,实现“iOS屏幕图片循环切换缩放”的功能涉及到多个技术点,主要集中在UIScrollView和UIPageControl的使用上。以下将详细介绍这个过程的关键知识点,并深入探讨如何实现图片的循环切换和缩放功能。 ...

    UI交互设计 iOS Android 各种手机尺寸

    在移动设备上,UI设计不仅要考虑美观,还要考虑到不同屏幕尺寸和分辨率下的可读性、易用性和功能性。 2. iOS 设备尺寸:苹果公司的iOS操作系统广泛应用于iPhone和iPad。iPhone系列有多种尺寸,例如iPhone SE的小屏...

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

    iOS 开发中,字体大小适配是非常重要的一环,特别是在屏幕尺寸不同的设备上,如何让字体大小适应屏幕尺寸的变化是一个普遍的问题。本文将详细介绍如何解决 iOS 中字体大小适配的问题。 一、问题背景 在 iOS 开发中...

    APP开发屏幕适配原理及实现方法(Android、iOS)

    在iOS屏幕适配方案中,屏幕尺寸和分辨率同样是两个非常重要的概念。然而,iOS中使用的是缩放倍率(scaleFactor)来描述屏幕的精度的概念。缩放倍率是由Apple公司为iPhone屏幕适配定义的标准。缩放倍率可以用来描述...

    ios7 ios6(3.5inch,4inch)适配

    在iOS开发中,适配不同屏幕尺寸是至关重要的任务,特别是在iOS7和iOS6这两个操作系统版本之间,因为它们支持3.5英寸和4英寸两种不同的屏幕尺寸。此压缩包文件"IOS7AdaptDemo"提供了一个示例项目,旨在帮助开发者理解...

    iOS屏幕适配开发实用技巧

    在iOS开发中,屏幕适配是一项至关重要的任务,因为不同的设备有着不同的屏幕尺寸和分辨率。以下是一些关于iOS屏幕适配开发的实用技巧。 首先,处理屏幕旋转是适配过程中的一个基本步骤。通过注册`...

    ios-iOS 字体大全.zip

    同时,考虑不同设备和屏幕尺寸的适配,以及针对无障碍功能的优化,都是制作优秀iOS应用时需要考虑的因素。 综上所述,这个压缩包可能为iOS开发者提供了一个丰富的字体库,涵盖了多种风格和用途的字体。使用这些资源...

    axure7.0 ios插件

    2. **屏幕尺寸适配**:iOS设备的屏幕尺寸各异,插件应提供相应的布局和元素大小调整工具,以适应Retina和非Retina显示屏,以及横屏和竖屏模式。 3. **iOS界面元素**:插件可能包含iOS特有的界面元素库,如导航栏、...

    iOS文字设配屏幕

    标题中的“iOS文字设配屏幕”指的是iOS应用如何根据用户设备的屏幕尺寸动态调整字体大小,确保文本在不同分辨率的屏幕上都能有良好的显示效果。 描述中提到的demo是一种具体的实现方式,它表明在iPhone 5上字体大小...

    swift-iOS屏幕自动适配和颜色转换成十六进制

    它可以将多个视图水平或垂直堆叠,并自动调整它们的大小和位置,适应屏幕尺寸的变化。 4._safeAreaLayoutGuide: 针对有刘海屏的iPhone,如iPhone X及以后的型号,`safeAreaLayoutGuide`属性提供了一个区域,开发者...

    iOS 自动生成各种尺寸的App Icon 和 Launch Image

    在iOS 8及以后的版本中,推荐使用Launch Storyboard,这是一种动态的启动屏幕,可以根据设备的屏幕尺寸自适应布局。 在Xcode中,我们可以方便地管理和生成这些资源。打开你的项目,导航到"Assets.xcassets"文件,这...

    ios-VFL语言实现AutoLayout,屏幕适配.zip

    在iOS开发中,AutoLayout是一种强大的布局管理系统,用于在不同屏幕尺寸和方向上创建自适应用户界面。Visual Format Language (VFL) 是一种简洁的语法,用于以字符串形式描述AutoLayout的约束。在这个"ios-VFL语言...

    ios5旋转屏幕

    Auto Layout是一种布局管理系统,它允许开发者在不同尺寸和方向的屏幕上创建适应性用户界面。在iOS 5中,你可以通过Interface Builder或代码添加约束,定义视图之间的相对位置和大小。当屏幕旋转时,Auto Layout会...

    ios屏幕旋转ios屏幕旋转

    4. **Size Classes**:iOS 8引入了Size Classes,为不同屏幕尺寸和方向提供了更灵活的布局管理。通过调整Size Classes,开发者可以在横屏和竖屏之间创建不同的用户界面。 5. **SwiftUI**:在iOS 13及以上版本,...

    获取手机屏幕尺寸的代码段.zip

    在Android和iOS开发中,获取手机屏幕尺寸是常见的需求,这有助于我们适配不同设备,提供良好的用户体验。这里,我们将详细探讨如何在Android和iOS平台上获取屏幕尺寸。 **Android** 在Android中,我们可以使用`...

Global site tag (gtag.js) - Google Analytics