如何在没有uiwebview的情况下在iphone中渲染SVG图像?

时间:2011-07-07 12:15:50

标签: iphone image uiimageview svg

我想在不使用UIWebView的情况下在iPhone中渲染SVG图像。我怎么能这样做?

我检查了这两个链接:

http://www.splashdust.net/2010/09/svgquartzrenderer-a-basic-iphone-sdk-compatible-svg-renderer/ https://github.com/splashdust/SVGQuartzRenderer

Github上面的项目显示了102个错误,显示UIKit框架缺失和其他人,我也无法添加该框架。 我认为该应用程序适用于MacOS而不适用于iOS。

http://maniacdev.com/2011/05/open-source-library-to-render-svg-graphics-as-core-animation-layers/
https://github.com/mattrajca/SVGKit

上面网址上的项目显示了构建项目时的错误。

Target指定产品类型'com.apple.product-type.framework',但'iPhoneOS'平台没有此类产品类型。

有谁知道如何解决这个问题?或者我可以使用的其他有用的工作示例?我想在iPhone上渲染SVG。

更新:我通过阅读说明工作了SVGKit。但当我试图让我从Github下载的项目工作时(https://github.com/splashdust/SVGQuartzRenderer 我得到以下错误:

1)UIKit / UIKit.h:没有这样的文件或目录(我无法使用添加现有框架添加它)
2)Libxml / tree.h:没有这样的文件或目录
3)期望的说明符 - 限定符 - 列表'xmlParserCtxtPtr'。 有谁知道如何解决它并让它工作?

3 个答案:

答案 0 :(得分:20)

Jason Morrissey,非常优秀的Alien Blue应用程序的作者,商店里最好的iOS Reddit客户端(你能告诉我我是粉丝吗?我也是测试版测试员。)最近提出他的{{3} } framework,将SVG图像渲染为Core Animation图层。我没有用它,但我知道它存在。

然后,看看......如果你在引入其他人的课程时遇到很多错误,我强烈怀疑你没有遵循他们的“如何使用”指示。他们通常会告诉您需要哪些框架以及他们支持哪些平台。每当我尝试使用这样的东西并进行汇编血洗时,我都会回去找到一些我错过的安装说明步骤。

答案 1 :(得分:6)

我刚设法编译SVGFlashRenderer。 对于iOS,您需要从目录SVGRendererTouch打开项目。 并且不要忘记从github单独下载lib / MROGeometry目录的内容(只需按照源代码树中的链接)。

P.S。对我来说,最好的工作解决方案是SVGKit,但不是Jason Morissey的版本(在另一个答案中提到),而是fork from reklis。它修复了许多错误,并以更加正确的方式工作。

答案 2 :(得分:0)

这很容易。

SVGKImage *svgImg = [SVGKImage imageNamed:@"add-control-panel"];
SVGKFastImageView *imgView = [[SVGKFastImageView alloc] initWithFrame:CGRectMake(10, 100, 420, 280)];
imgView.image = svgImg;
[self.view addSubview:imgView];