0%

iOS使用SVG和PDF图片

什么是SVG?

SVG是一种用XML定义的语言,用来描述二维矢量及矢量/栅格图形。

SVG有哪些优势?

参与定义 SVG 的组织有:太阳微系统、Adobe、苹果公司、IBM 以及柯达。
与其他图像格式相比,使用 SVG 的优势在于:
●SVG 可被非常多的工具读取和修改(比如记事本)
●SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。
●SVG 是可伸缩的
●SVG 图像可在任何的分辨率下被高质量地打印
●SVG 可在图像质量不下降的情况下被放大
●SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)
●SVG 可以与 JavaScript 技术一起运行
●SVG 是开放的标准
●SVG 文件是纯粹的 XML
●SVG 的主要竞争者是 Flash。

SVG在iOS中有哪些劣势?

●Xcode 6以后支持矢量图,原生支持pdf格式
●原生不支持SVG格式(因为svg本质是xml),如果要加载SVG格式,使用WebView或第三方框架
●原生中如果使用SVG格式的图片,不能放在Assets.xcassets中,要像本地文件或者网络文件一样给个地址,存放起来有点麻烦
●集成起来麻烦
●只支持放大缩小,颜色修改需要另外的分类来支持
●不支持带滤镜的SVG
●UIButton使用SVG时,需要设置Button的Type为Custom,否则改变颜色的时候,没有效果。

iOS使用第三方框架加载svg格式

iOS中使用 SVGKit(Objective-C库)和 Macaw(Swift库)。

iOS中使用PDF格式的图片

在Asset.xcassets中添加一张图片,选择Attributes inspector,scales设置成SingleScale,原来3个占位图的位置会变成1个占位图的位置。在这个占位图中拖入一个pdf格式的图片。iOS系统会根据PDF格式的图片自动生成@1x、@2x和@3x图,对应适配不同的屏幕。

Demo

参考链接:

百度百科SVG格式
Xcode项目中使用矢量图(pdf,svg)
矢量图在iOS中的应用细节
iOS开发APP瘦身之PDF图片资源加载框架