如何在我的iOS应用中像Viber一样播放SVG动画贴纸?

时间:2016-04-16 22:03:53

标签: ios animation svg xamarin

如何在我的iOS应用中像Viber一样播放SVG动画贴纸?

如果您不熟悉Viber,可以在此链接中查看Viber应用程序中的SVG动画贴纸示例:

http://www.tbyrne.org/viber-animated-svgs

注意:我使用Xamarin框架在C#中开发我的应用程序,但任何本机(Swift,Objective-C)解决方案也都很好。

谢谢

1 个答案:

答案 0 :(得分:2)

注意:您链接的网站已关闭/没有响应,因此我不知道这些SVG文件是什么样的

最快的方法是将UIWebView嵌入到您的应用中,然后您可以加载本地(资源嵌入式)或远程SVG。它们可以用html包装并使用基于JavaScript的动画技术,CSS动画或基于SVG / SMIL的动画:

即:

WebView.LoadRequest(new NSUrlRequest(new NSUrl("https://imgh.us/LoveDota.svg")));

根据您的应用程序要求和您正在使用的SVG,这将是包含动画SVG的最快方式。将UIWebView嵌入到任何视图和/或控件的子视图中的功能非常有效。由于您可以访问DOM,因此您可以动态操作SVG。

LoveDota.svg在iOS WebKit中播放:

LoveDota.svg

我建议将SVG内容包装在html文件中,这样您就可以控制缩放,将Javascript事件回调添加到您的应用中等等......

注意:如果您需要快速测试内容并使其适合UIWebView设置ScalesPageToFit属性:

WebView.ScalesPageToFit = true;

“慢”,需要编码:-),方法是通过sharpie绑定项目使用伟大的SVGKit项目。它不directly支持SVG动画,但取决于您用于SVG动画开发的工具集,导出SVG并使用SVGKit输出一系列CoreAnimation层是惊人的,并得到你远离使用WebKit(及其SVG交互式DOM事件怪癖)。

在Xamarin SpriteKit示例之上的动画SVG进度条:

enter image description here