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.png、Icon.png和Icon@2x.png顺序拖拽到三个空白的虚线框中,完成之后的效果如下图所示:
6. 右击左侧的AppIcon,在弹出的辅助菜单中选择Show in Finder,看看刚才拖拽都做了哪些工作:
7. 图中除了Contents.json这个文件陌生之外,其他文件都是刚刚拖拽进Xcode的,双击查看一下Contents.json文件内容:
- {
- "images" : [
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-Small.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-Small@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "57x57",
- "idiom" : "iphone",
- "filename" : "Icon.png",
- "scale" : "1x"
- },
- {
- "size" : "57x57",
- "idiom" : "iphone",
- "filename" : "Icon@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon7.png",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
- }
内容一目了然啊,哈哈,以后再也不用去特意记住每个尺寸的图标分别应该叫什么名字了,不知道您会不会,反正我每次都是粘贴复制的,呵呵。以后,只要通过拖拖拽拽就搞定了~_~
8. 图标搞定了,启动图片照做就OK了,具体操作差别不大,完成之后的示意图如下:
9. 再看一下Finder中的内容,如下所示:
10. 在Finder中不难发现多出了两个文件,分别是:Default@2x-1.png和Default-568h@2x-1.png,双击打开对应的Contents.json文件,内容如下:
- {
- "images" : [
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "filename" : "Default@2x.png",
- "scale" : "2x"
- },
- {
- "extent" : "full-screen",
- "idiom" : "iphone",
- "subtype" : "retina4",
- "filename" : "Default-568h@2x.png",
- "minimum-system-version" : "7.0",
- "orientation" : "portrait",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "extent" : "full-screen",
- "filename" : "Default.png",
- "scale" : "1x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "extent" : "full-screen",
- "filename" : "Default@2x-1.png",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "extent" : "full-screen",
- "filename" : "Default-568h@2x-1.png",
- "subtype" : "retina4",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
- }
11. 将其中的"filename": "Default@2x-1.png"和"filename" : "Default-568h@2x-1.png"分别改为"filename": "Default@2x.png"和"filename" : "Default-568h@2x.png",保存并返回Xcode看看会发生什么?
修改后的Contents.json内容如下:
- {
- "images" : [
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "filename" : "Default@2x.png",
- "scale" : "2x"
- },
- {
- "extent" : "full-screen",
- "idiom" : "iphone",
- "subtype" : "retina4",
- "filename" : "Default-568h@2x.png",
- "minimum-system-version" : "7.0",
- "orientation" : "portrait",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "extent" : "full-screen",
- "filename" : "Default.png",
- "scale" : "1x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "extent" : "full-screen",
- "filename" : "Default@2x.png",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "extent" : "full-screen",
- "filename" : "Default-568h@2x.png",
- "subtype" : "retina4",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
- }
12. 分别选中下方的"Default@2x-1.png"和"Default-568h@2x-1.png",按删除键删除这两个文件,删除之后的效果如下图所示:
删除之后Finder中的内容如下所示:
13. 接下来我们新建一个图像试试看如何操作,开始之前我们仍然需要准备一下素材,如下图所示:
说明:为了方便在运行时看出不同分辨率的设备使用的背景图片不同,我在素材图片中增加了文字标示。
14. 将准备好的三个Background直接拖拽到Xcode中,完成之后如下图所示:
15. 单击右侧Devices中的Universal,并选择Device Specific,然后在下方勾选iPhone和Retina 4-inch,同时取消勾选iPad,完成之后如下图所示:
16. 将下方Unassigned中的图片直接拖拽到右上角R4位置,设置视网膜屏使用的背景图片,如下图所示:
17. 单击并打开Main.storyboard,选中左侧的View Controller,然后在右侧File Inspector中,取消勾选Use Autolayout选项,如下图所示:
18. 从右侧工具栏中拖拽一个UIImageView至View 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设备有多种屏幕尺寸,如iPhone的3.5英寸、4英寸、4.7英寸、5.5英寸以及...
iOS设备通常有几种固定的屏幕尺寸,如iPhone SE、iPhone 12系列等,而Android设备则有着更广泛的尺寸范围。因此,设计师需要进行响应式布局,确保界面在各种屏幕尺寸下都能良好展示。 总结来说,理解并遵循Android...
在iOS开发中,屏幕适配是一项至关重要的任务,因为设备的屏幕尺寸和分辨率各不相同,包括iPhone、iPad以及不同版本的iOS系统。本Demo旨在通过几行代码帮助开发者快速理解并实现iOS应用的屏幕适配,确保在各种设备上...
在 IOS6 之前,屏幕适配一般使用 autosize,设置视图与父视图的尺寸关系。但是,autosize 有两个缺陷:不能设置视图与视图之间的关系,不能设置尺寸放大、缩小的最大值、最小值。 在 IOS6 之后,使用自动布局...
"swift-Inch-优雅的iPhone不同尺寸屏幕精准适配工具"是一个专为解决iPhone不同尺寸屏幕适配问题而设计的工具,其核心是Inch库,旨在帮助开发者更优雅地处理iOS设备的屏幕尺寸差异,确保应用在所有iPhone上都能呈现出...
在iOS开发中,实现“iOS屏幕图片循环切换缩放”的功能涉及到多个技术点,主要集中在UIScrollView和UIPageControl的使用上。以下将详细介绍这个过程的关键知识点,并深入探讨如何实现图片的循环切换和缩放功能。 ...
在移动设备上,UI设计不仅要考虑美观,还要考虑到不同屏幕尺寸和分辨率下的可读性、易用性和功能性。 2. iOS 设备尺寸:苹果公司的iOS操作系统广泛应用于iPhone和iPad。iPhone系列有多种尺寸,例如iPhone SE的小屏...
iOS 开发中,字体大小适配是非常重要的一环,特别是在屏幕尺寸不同的设备上,如何让字体大小适应屏幕尺寸的变化是一个普遍的问题。本文将详细介绍如何解决 iOS 中字体大小适配的问题。 一、问题背景 在 iOS 开发中...
在iOS屏幕适配方案中,屏幕尺寸和分辨率同样是两个非常重要的概念。然而,iOS中使用的是缩放倍率(scaleFactor)来描述屏幕的精度的概念。缩放倍率是由Apple公司为iPhone屏幕适配定义的标准。缩放倍率可以用来描述...
在iOS开发中,适配不同屏幕尺寸是至关重要的任务,特别是在iOS7和iOS6这两个操作系统版本之间,因为它们支持3.5英寸和4英寸两种不同的屏幕尺寸。此压缩包文件"IOS7AdaptDemo"提供了一个示例项目,旨在帮助开发者理解...
在iOS开发中,屏幕适配是一项至关重要的任务,因为不同的设备有着不同的屏幕尺寸和分辨率。以下是一些关于iOS屏幕适配开发的实用技巧。 首先,处理屏幕旋转是适配过程中的一个基本步骤。通过注册`...
同时,考虑不同设备和屏幕尺寸的适配,以及针对无障碍功能的优化,都是制作优秀iOS应用时需要考虑的因素。 综上所述,这个压缩包可能为iOS开发者提供了一个丰富的字体库,涵盖了多种风格和用途的字体。使用这些资源...
2. **屏幕尺寸适配**:iOS设备的屏幕尺寸各异,插件应提供相应的布局和元素大小调整工具,以适应Retina和非Retina显示屏,以及横屏和竖屏模式。 3. **iOS界面元素**:插件可能包含iOS特有的界面元素库,如导航栏、...
标题中的“iOS文字设配屏幕”指的是iOS应用如何根据用户设备的屏幕尺寸动态调整字体大小,确保文本在不同分辨率的屏幕上都能有良好的显示效果。 描述中提到的demo是一种具体的实现方式,它表明在iPhone 5上字体大小...
它可以将多个视图水平或垂直堆叠,并自动调整它们的大小和位置,适应屏幕尺寸的变化。 4._safeAreaLayoutGuide: 针对有刘海屏的iPhone,如iPhone X及以后的型号,`safeAreaLayoutGuide`属性提供了一个区域,开发者...
在iOS 8及以后的版本中,推荐使用Launch Storyboard,这是一种动态的启动屏幕,可以根据设备的屏幕尺寸自适应布局。 在Xcode中,我们可以方便地管理和生成这些资源。打开你的项目,导航到"Assets.xcassets"文件,这...
在iOS开发中,AutoLayout是一种强大的布局管理系统,用于在不同屏幕尺寸和方向上创建自适应用户界面。Visual Format Language (VFL) 是一种简洁的语法,用于以字符串形式描述AutoLayout的约束。在这个"ios-VFL语言...
Auto Layout是一种布局管理系统,它允许开发者在不同尺寸和方向的屏幕上创建适应性用户界面。在iOS 5中,你可以通过Interface Builder或代码添加约束,定义视图之间的相对位置和大小。当屏幕旋转时,Auto Layout会...
4. **Size Classes**:iOS 8引入了Size Classes,为不同屏幕尺寸和方向提供了更灵活的布局管理。通过调整Size Classes,开发者可以在横屏和竖屏之间创建不同的用户界面。 5. **SwiftUI**:在iOS 13及以上版本,...
在Android和iOS开发中,获取手机屏幕尺寸是常见的需求,这有助于我们适配不同设备,提供良好的用户体验。这里,我们将详细探讨如何在Android和iOS平台上获取屏幕尺寸。 **Android** 在Android中,我们可以使用`...