图像资源Images Assets_@/assets/image/bubble.png-程序员宅基地

技术标签: ios  

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

 

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

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

 

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

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

3. 将[email protected]拖拽到第一个虚线框中,将Icon7.png拖拽到第二个虚线框中,如下图所示:

 

说明[email protected]的尺寸是58*58像素的,而Icon7.png的尺寸是120*120像素的。另外,如果拖入的图片尺寸不正确,Xcode会提示警告信息。

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

 

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

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" : "[email protected]",

      "scale" : "2x"

    },

    {

      "size" : "57x57",

      "idiom" : "iphone",

      "filename" : "Icon.png",

      "scale" : "1x"

    },

    {

      "size" : "57x57",

      "idiom" : "iphone",

      "filename" : "[email protected]",

      "scale" : "2x"

    },

    {

      "size" : "60x60",

      "idiom" : "iphone",

      "filename" : "Icon7.png",

      "scale" : "2x"

    }

  ],

  "info" : {

    "version" : 1,

    "author" : "xcode"

  }

}
复制代码

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

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

 

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

 

10. 在Finder中不难发现多出了两个文件,分别是:[email protected][email protected],双击打开对应的Contents.json文件,内容如下:

复制代码
{

  "images" : [

    {

      "orientation" : "portrait",

      "idiom" : "iphone",

      "extent" : "full-screen",

      "minimum-system-version" : "7.0",

      "filename" : "[email protected]",

      "scale" : "2x"

    },

    {

      "extent" : "full-screen",

      "idiom" : "iphone",

      "subtype" : "retina4",

      "filename" : "[email protected]",

      "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" : "[email protected]",

      "scale" : "2x"

    },

    {

      "orientation" : "portrait",

      "idiom" : "iphone",

      "extent" : "full-screen",

      "filename" : "[email protected]",

      "subtype" : "retina4",

      "scale" : "2x"

    }

  ],

  "info" : {

    "version" : 1,

    "author" : "xcode"

  }

}
复制代码

11. 将其中的"filename" : "[email protected]""filename" : "[email protected]"分别改为"filename" : "[email protected]""filename" : "[email protected]",保存并返回Xcode看看会发生什么?

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

复制代码
{

  "images" : [

    {

      "orientation" : "portrait",

      "idiom" : "iphone",

      "extent" : "full-screen",

      "minimum-system-version" : "7.0",

      "filename" : "[email protected]",

      "scale" : "2x"

    },

    {

      "extent" : "full-screen",

      "idiom" : "iphone",

      "subtype" : "retina4",

      "filename" : "[email protected]",

      "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" : "[email protected]",

      "scale" : "2x"

    },

    {

      "orientation" : "portrait",

      "idiom" : "iphone",

      "extent" : "full-screen",

      "filename" : "[email protected]",

      "subtype" : "retina4",

      "scale" : "2x"

    }

  ],

  "info" : {

    "version" : 1,

    "author" : "xcode"

  }

} 
复制代码

12. 分别选中下方的"[email protected]""[email protected]",按删除键删除这两个文件,删除之后的效果如下图所示:

删除之后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原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaoxiaotian2008/article/details/18721219

智能推荐

Android 中调用线程thread.stop 方法后报错,Deprecated Thread methods are not supported._timethread().stop();报错-程序员宅基地

文章浏览阅读3.9k次。03-16 15:39:03.082 16179-16179/tech.androidstudio.handlerdemotimer E/global: Deprecated Thread methods are not supported.03-16 15:39:03.082 16179-16179/tech.androidstudio.handlerdemotimer E/global: _timethread().stop();报错

%e5 转换汉字 php,汉字转Unicode编码,Unicode编码转汉字-程序员宅基地

文章浏览阅读2.3k次。/*** 汉字转Unicode编码* @param string $str 原始汉字的字符串* @param string $encoding 原始汉字的编码* @param boot $ishex 是否为十六进制表示(支持十六进制和十进制)* @param string $prefix 编码后的前缀* @param string $postfix 编码后的后缀*/function unicode..._%e5

东汉十三州以及各个郡的说明_三国地图十三州精确到城池-程序员宅基地

文章浏览阅读6.4w次,点赞7次,收藏10次。东汉十三州以及州下辖的郡县。_三国地图十三州精确到城池

响应式编程实现异步RPC,提升xxl-job调度吞吐量-程序员宅基地

文章浏览阅读1.1k次。在xxl-job中,RPC即用于调度中心请求执行器执行job、kill job,也用于执行器请求调度中心主动注册、执行结果上报。xxl-job实现的RPC类似Feign框架,是基于http..._xxljob 用的什么协议

C++ Json到对象的自动序列化和反序列化工作_c++ json序列化和反序列化-程序员宅基地

文章浏览阅读555次,点赞17次,收藏22次。JSERIALIZE_DEF_OBJECTLIST(Person,Object,objectList) //接受json中的objectList对象数组,对象数组使用此宏定义。JSERIALIZE_DEF_OBJECTTYPE(Person,Son,son) //接受json中的son对象,对象成员使用此宏定义。//输出反序列化结果。

DOSBOX 0.74模拟器安装Windows 95_dosbox imgmount-程序员宅基地

文章浏览阅读7.8k次,点赞2次,收藏6次。DosBox本身带有5.0版的DOS系统,启动后虚拟一个Z盘存放有Dosbox特有的外部指令,如config.com、imgmount.com等,经测试,可以顺利安装各版本的windows 3.1系统,但是不能安装win95,需要用原版的dos镜像启动才能安装。1. 获取启动盘镜像文件 下载Win95启动软盘镜像文件,名为boot.img,放到DosBox 0.74的目录下。2. 制作硬盘镜像文件_dosbox imgmount

随便推点

C++--继承基本概念、对象赋值转换、作用域_什么是赋值转换-程序员宅基地

文章浏览阅读254次,点赞5次,收藏2次。继承1. 继承的基本概念1.1 继承的定义1.2 继承基类成员访问方式的变化2. 基类和派生类对象赋值转换3. 继承中的作用域1. 继承的基本概念继承是面向对象程序设计使代码复用的最重要的手段,允许在保持原有类特性的基础上进行扩展,增加功能,产生新的类,称为派生类/子类。继承是类设计层次的复用。1.1 继承的定义派生类 : 继承方式 基类class Student : public Person1.2 继承基类成员访问方式的变化父类成员在子类中的访问权限(除过父类中的私有成员):_什么是赋值转换

模式识别(2)KNN分类_usps数据集是在哪里提出的-程序员宅基地

文章浏览阅读2.3k次,点赞10次,收藏36次。基于USPS和UCI数据集的近邻法分类一、问题描述 使用近邻算法进行分类问题的研究,并在USPS手写体数据集和UCI数据集上的iris和sonar数据上验证算法的有效性,并分别对近邻法中k近邻算法、最近邻算法和Fisher线性判别进行对比分析。二、数据集说明2.1 USPS手写体 USPS,美国邮政署,是美国联邦政府的独立机构,其中的手_usps数据集是在哪里提出的

Access根据出生日期计算年龄_Excel表格中怎么用出生日期计算年龄?这些方法好用哟...-程序员宅基地

文章浏览阅读1.9k次。  平时工作中用到Excel表格的几率特别大,也积累了一些小技巧,今天就给大家分享一下计算年龄的方法。  在Excel表格中利用“系统时间”和“出生年月”来计算“周岁年龄”、“虚岁年龄”和“实际年龄”是非常方便的,特别是人事管理和工资的统计中遇到的可能性比较大,一起来看一下计算年龄的方法吧。  方法一  第一步,如下图所示,先把需要计算年龄的出生日期输入到表格中。   第二步,然后在B2单元格中输..._access计算年龄

【EJB】异步方法调用-程序员宅基地

文章浏览阅读641次,点赞23次,收藏18次。虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

如何构建知识体系_网络智能知识体系的构建方法-程序员宅基地

文章浏览阅读286次。分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net先说一件值得思考的事情:高考的时候大家都是一样的教科书,同一个教室,同样的老师辅导,时间精力基本差不多,可是最后别人考的是清华北大或者一本,而你的实力只能考个三本,为什么?当然这里主要是智商的影响,那么其他因素呢?智商解决的问题能不能后天用其他方式来补位一下?大家平时都看过很多方法论的文章,看的时候很爽觉得非常有用,但是一两周后基本还是老样子了。其中有很大_网络智能知识体系的构建方法

超全的数组去重12种方法_数组去重方法-程序员宅基地

文章浏览阅读2.7w次,点赞33次,收藏349次。前言数组去重,可以说是一个比较常见的面试题,今天来盘点一下都有哪些方法可以实现数组去重。方法1、双重for循环这是一个最笨的方法,双重循环。var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1] // 数组去重: // 方法1: 双重for 循环 function newArrFn (arr) { // 创建一个新的空数组 let newArr = [] for(let i = 0;i<arr.length;i+_数组去重方法

推荐文章

热门文章

相关标签