iOS7—Day by day—Day2:Asset Catalog

来源:互联网 发布:剪切音乐的软件 编辑:程序博客网 时间:2024/05/21 10:58

这篇文章是天天品尝iOS7甜点系列的一部分,你可以查看完整的系列目录:天天品尝iOS7甜点


介绍

过去,我们在Xcode中会花费很多的时间来管理我们的图像资产,我们不确定需要retina版本的图片,或者不同icon版本的图标。在以前这些图像都没有很多的关联管理,但是在Xcode5和iOS7中,Apple已经介绍了一个新的概念Asset Catalogs(资产分类),它可以管理物理图像文件和这些文件的上下文信息。

完成的代码已经在github可供下载使用:github.com/ShinobiControls/iOS7-day-by-day

Asset Catalog – 资产分类

一个资产分类的目录由一些图像的集合,app图标和app启动页构成。当我们在Xcode5中新建一个工程的时候,Xcode会自动为我们创建一个名为Images的资产分类文件夹,并且它会事先准备好一些app图标和app启动页,同时Xcode提供旧应用程序迁移到使用资产目录。

在iOS7中的目录中会编译成一个二进制的文件,来减少发布应用程序的大小。

Asset catalogs是存在在硬盘上面的一个目录,由Xcode进行管理。它以特定的方式进行文件的排列,包含一个json文件存储目录相关联的元数据:

App icons and launch images

Asset catalog(资产分类)默认被Xcode5中自动创建,名为Images.xcassets,包含了AppIconLaunchImage的入口。提供了构建应用的所有需要的图标的尺寸:

可以通过简单的拖拽图片填充到对应的分类中,如果你图片的尺寸不符合,Xcode就会产生警告信息:

Custom imagesets – 自定义图像集

和标准的集合一样,你可以使用asset catalogs来管理你自己的图片,图片都是包含在ImageSet中的,并且可以使用管理对应的retina和非retina图像.

使用Xcode创建一个图片的集合(image set), 你就可以在导航拦里面很轻松的管理图像,同样使用这些图像也是十分简单的,使用UIImage:imageNamed::

1
UIImage *image = [UIImage imageNamed:@"Australia"];

Slicing images – 切片图像

Asset catalogs的另外一个主要的特性就是能够让图像进行切片工作,自从iOS2开始程序就能够使用切片的图像了,但是Xcode中的这个新特性会变得非常的简单。

变换图像使用切片是一个基本的技术来创建一个虚拟的元素,例如按钮,需要拉伸这个按钮图片的大小达到一个新的大小,并且要设置边缘不被拉伸,只拉伸中间的部分。

在Asset catalog中就可以使用Xcode提供的功能进行切片操作了,开启切片功能,只需要点击Show Slicing按钮,你可以选择水平、竖直或者两者都拉伸的方式,如果你选择之后,图像将会重新加载并且上面会出现拉伸辅助线,你可以通过拖拽辅助线,来实现自己需要拉伸的效果。

使用这些切片图像编程非常的简单,和之前一样创建一个UIImage对象,然后当你调整UIImageView的大小,内部的image就会自动根据切片的图像来变换大小。

12345678910111213
UIImage *btnImage = [UIImage imageNamed:@"ButtonSlice"];// Let's make 2UIImageView *iv = [[UIImageView alloc] initWithImage:btnImage];iv.bounds = CGRectMake(0, 0, 150, CGRectGetHeight(iv.bounds));iv.center = CGPointMake(CGRectGetWidth(self.view.bounds) / 2, 300);[self.view addSubview:iv];// And a stretched versioniv = [[UIImageView alloc] initWithImage:btnImage];iv.bounds = CGRectMake(0, 0, 300, CGRectGetHeight(iv.bounds));iv.center = CGPointMake(CGRectGetWidth(self.view.bounds) / 2, 350);[self.view addSubview:iv];

总结

Asset catalog 并不是一个突破性的iOS开发者工具包,但是它确实能够为iOS开发者节约很多的时间,能够从繁杂的工作中解脱出来,此功能包含在Xcode5中。

本文翻译自:iOS7 Day-by-Day :: Day 2 :: Asset Catalog

 2014-01-07 Tue  iOS7, iOS7 Day-by-Day, 翻译

0 0