iOS开发Xcode6及以上版本中使用PDF格式矢量图标资源
2016-06-14 17:02
841 查看
原理
苹果最擅长使用障眼法,之前是障用户的眼,现在又来障开发者。XCode6的这个“支持矢量图”,实际上只是编译项目时,根据矢量图自动生成对应的@1x,@2x和@3x的png格式图像。不过这也有好处,首先是不用担心运行时扩展尺寸而降低性能,另外可以兼容更早的iOS版本,经实际测试,除了iOS8外,iOS6、7是没问题的,5目前没有条件测试。
For Coding人员
对于开发者来说,使用非常方便。唯一要做的就是在Images.xcassets目录中将图片Image Set的Type改成“Vectors”,之后你会发现原先左边的一排@1x,@2x,@3x的格子不见了,转而只留下一个“Universal”。此时将美术人员提供的pdf文件,像以往那样拖进来就OK了。使用方法同过去一模一样,既可以在xib或storyboard中直接指定,也可以在代码中用
self.logoImageView.image = [UIImage imageNamed:@”logo”];
来进行设置。
值得注意的是,它本质上还是个png,所以如果你“机智”地加了pdf后缀,就像下面这样,那么很遗憾,这就就上了苹果的当。
self.logoImageView.image = [UIImage imageNamed:@”logo.pdf”];
上面这个样子是无法显示出来的。
编译后,可以清楚地看到,三种大小的图片和以往一样面熟,如图:
是的,已经没有了,对于开发人员来说,除了使用上更方便外,几乎和过去一模一样。
For UI人员
目前Xcode只支持PDF这和种矢量图格式,无论用AI或PS都可以,只要是可以放大不变形的都可以,比如路径或矢量字体。存储时设置为PDF格式即可。
(AI)
(PS)
不过要注意的是,务必去掉“保留编辑功能”前面的勾,见下图:
另外,虽然矢量图文件一定程度上放大并不会变形,比如这个2×2像素的
在放大后仍然很清晰:
但是在编译完成时,却被XCode转成了真的只有2×2像素的png:
解决的方法是在创建时设置画布的尺寸为@1x的大小基准,也就是假设屏幕分辨率为320*480的大小来做。这一点可能和当前流行的以640宽度或750宽度做有些不同,我这里的方法也不是最终方法,这个还要由设计师来自行评估。
这样当创建一个比如150x150px的pdf时:
XCode就会以它为基准自动生成适合不同分辨率的@1x,@2x,@3x的png图片了:
(150×150)
(300×300)
(450*450)
转自:《iOS使用矢量图的总结》 http://lugede.cn/ios-use-vector-pdf-image
相关资料:《USING VECTOR IMAGES IN XCODE 6》 http://martiancraft.com/blog/2014/09/vector-images-xcode6/
中文翻译版:《怎样在Xcode 6中使用矢量图形》 http://www.cocoachina.com/design/20141229/10784.html
相关文章推荐
- 一款免费且安全的在线 PDF 转换软件
- PDF里的文字显示模糊的解决方法
- PDF编辑工具 Foxit PDF Editor 1.5 Build 2911 下载
- 没有文件大小限制并免费的PDF到HTML转换工具
- MicroAdobe PDF Editor 6.2 英文正式版附破解补丁 下载
- C#使用iTextSharp设置PDF所有页面背景图功能实例
- C#怎么给PDF添加背景图片
- PDF的VBS小程序代码
- C#实现PDF文件添加图片背景
- C#实现TIF图像转PDF文件的方法
- c#实现将pdf转文本的示例分享
- C#代码实现PDF文档操作类
- C#使用iTextSharp封装的PDF文件操作类实例
- C#编程读取文档Doc、Docx及Pdf内容的方法
- Java开源工具iText生成PDF简单实例
- C#使用itextsharp生成PDF文件的实现代码
- 使用java为pdf添加书签的方法(pdf书签制作)
- java中输出pdf文件代码分享
- iOS开发之路--微博“更多”页面
- Python实现将DOC文档转换为PDF的方法