开始之前,首先回顾一下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文件内容:

{

  "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.pngDefault-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,然后在下方勾选iPhoneRetina 4-inch,同时取消勾选iPad,完成之后如下图所示:

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

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

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

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

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

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

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

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

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

4. 注意:启动图片的PNG图片不要使用透明图片,有兴趣的朋友不妨可以试试看,很丑的,呵呵。

著作权声明:本文由http://blog.csdn.net/liufan321或者http://www.cnblogs.com/liufan9原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

iOS7初体验(3)——图像资源Images Assets的更多相关文章

  1. iOS7——图像资源Images Assets

    iOS7初体验(3)——图像资源Images Assets 分类: iOS开发2013-06-18 16:02 17583人阅读 评论(2) 收藏 举报 ios7Images xcassets图像资源 ...

  2. 图像资源Images Assets

    图像资源Images Assets 开始之前,首先回顾一下iOS7初体验(1)——第一个应用程序HelloWorld中的一张图,如下所示: 本文便分享一下Images.xcassets的体验~_~ 1 ...

  3. iOS7初体验(1)——第一个应用程序HelloWorld

    iOS7 Beta已经发布了,迫不及待地下载了iOS 7及Xcode 5并体验了一下.先做一个简单的Hello World看看都有哪些变化吧. 1. 启动Xcode5-DP: 2. 从菜单选择File ...

  4. iOS7 初体验

    iOS7 初体验 近日来由于iOS7的发布,引来业界的各种吐槽. 为了体验一把,我已经把iPhone5刷成了iOS7,也下载Xcode5-DP并进行了测试.我想说的是iOS7与Xcode5-DP中新增 ...

  5. iOS图像资源Images Assets

    1. 在工程中单击并打开导航区域中的Images.xcassets,看看都有些什么东东:]: 2. 在图中可以看到中间位置有两个虚线框,感觉应该可以直接拖文件进来.OK,那就先准备一下资源文件,如下图 ...

  6. iOS7初体验(2)——单元测试

    在Xcode 4.6及以前的版本,一直觉得单元测试这部分功能做得很鸡肋,用起来感觉很别扭.这一次Xcode 5.0默认就引入了单元测试,赶快来看看看相比以前的版本有什么提升吧!~_~ 1.     首 ...

  7. 文档数据库RavenDB-介绍与初体验

    文档数据库RavenDB-介绍与初体验 阅读目录 1.RavenDB概述与特性 2.RavenDB安装 3.C#开发初体验 4.RavenDB资源 不知不觉,“.NET平台开源项目速览“系列文章已经1 ...

  8. YII学习,初体验 ,对YII的一些理解.

    先说点没用的: 不会选择,选择后不坚持,不断的选择.这是人生中的一个死循环,前两一直迷茫.觉得自己前进方向很不明朗.想去学的东西有很多.想学好YII,想学PYTHON 想学学hadoop什么的,又想研 ...

  9. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

随机推荐

  1. HttpURLConnection 下载文件

    String fileUrl = request.getRequestURL().substring(0, request.getRequestURL().indexOf("/rest&qu ...

  2. Google上的Cookie Matching

    Cookie Matching This guide explains how the Cookie Matching Service enables you to make more effecti ...

  3. 编辑器sublime text3 破解码

    第一段亲测有效 —– BEGIN LICENSE —–Ryan ClarkSingle User LicenseEA7E-8124792158A7DE B690A7A3 8EC04710 006A5E ...

  4. 为什么for(int i=0;i<9;i++) 在c语言中是错误的?

    显示表示,i 变量不可以在for中定义,必须在外面定义,这是为什么? 因为C99标准以前的C标准是不支持临时变量在for循环中定义的. C99标准就支持这样写.但是目前有些编译器并不怎么愿意支持C99 ...

  5. coredump调试的使用

    一,什么是coredump 跑程序的时候经常碰到SIGNAL 或者 call trace的问题,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满 ...

  6. AngularJs自定义指令详解(3) - scope

    我们之所以要定义指令,目的是重用指令.假设有这么一个应用场景:在同一个html里使用了两次my-directive,第一个my-directive要展示的是Hello World,第二个my-dire ...

  7. 数据字典和动态性能视图<五>

    数据字典和动态性能视图 介绍:数据字典是什么 数据字典是 oracle 数据库中最重要的组成部分,它提供了数据库的一些系统信息. 动态性能视图记载了例程启动后的相关信息.  数据字典 数据字典记录了 ...

  8. DBHelper

    DBHelper: using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...

  9. java动态代理模式

    java动态代理机制详解 Spring的核心AOP的原理就是java的动态代理机制. 在java的动态代理机制中,有两个重要的类或接口: 1.InvocationHandler(Interface): ...

  10. C# Delegate 匿名 Delegate

    C#6.0新添加了 lambda的强力支持,用lambda的确可以节省好多代码,让代码看起来更简洁,更直观: 这里做一个笔记,C#的匿名委托 Demo class Program { static v ...