如何在不使用UIWebView的情况下在iOS中显示动画svg文件

时间:2017-07-04 12:49:24

标签: ios iphone swift svg-animate

目前我正在使用UIWebView在我的原生iOS应用程序中显示动画svg文件。

这个工作正常,只要app处于前台,CPU使用率一直在较高的一侧。

有没有更好的方法可以在不使用UIwebView

的情况下显示svg文件

我已经尝试了很多第三方库,但都只适用于静态svg文件而不是动画svgs

我试过以下

https://github.com/mchoe/SwiftSVG

https://github.com/exyte/Macaw

https://github.com/onmyway133/Snowflake

https://github.com/SVGKit/SVGKit

我的应用支持 iOS 9 及更高版本,我的代码位于 Swift3

以下是我试图显示的svg文件的开启链接

http://www.mediafire.com/file/04ojy6t4e3c41lv/03d.svg

1 个答案:

答案 0 :(得分:-1)

你应该看一下SVGKit

此库基于核心动画。

参考this tutorial

首先安装pod或手动将SVGKit安装到项目中。

然后将svg文件拖放到项目中。

然后你可以做类似的事情,

  UIView *myView = [[UIView alloc]initWithFrame:CGRectMake(20, 70, 300, 300)];

myView.backgroundColor = [UIColor yellowColor];

[self.view addSubview:myView];

 // SVGKImage *image = [SVGKImage imageWithContentsOfFile:@"animated-svg-icon"];

SVGKImage *image = [SVGKImage imageNamed:@"cd-icon.svg"];

[self animateCALayer:image.CALayerTree duration:2.0];
[myView.layer addSublayer:image.CALayerTree];

此处cd-icon.svg是svg图片。将所有html,js和css文件放在你的包中! (将整个svg文件夹放在你的项目中)

如果您收到与CocoaLumberjack相关的任何错误,请在项目中安装pod 'CocoaLumberjack',并将@import CocoaLumberjack;替换为#import "CocoaLumberjack.h"中的SVGKit-prefix.pch

按照我的提及,一步一步地按照一切步骤。你完成了。您将在UIView而不是webview中显示svg。