web-dev-qa-db-ja.com

uiwebviewなしでiPhoneでSVG画像をレンダリングする方法は?

UIWebViewを使用せずにiPhoneでSVG画像をレンダリングしたい。どうやってやるの?

私はこれらの2つのリンクをチェックしました:

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

上記のGithubのプロジェクトでは、UIKitフレームワークが見つからないなどの102のエラーが表示され、そのフレームワークを追加することもできません。このアプリケーションはiOS用ではなくMacOS用だと思います。

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

上記のURLのプロジェクトは、プロジェクトをビルドするときにエラーを示しています。

ターゲットは製品タイプ「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」の前に指定子-修飾子-リストが必要です。誰かがそれを解決してそれを機能させる方法を知っていますか?

17
nehal

非常に優れたAlienBlueアプリの作者であるJasonMorrisseyは、ストアで最高のiOS Redditクライアントです(私がファンだと言えますか?私はベータテスターでもあります)。最近、彼の SVGKit =フレームワーク。SVG画像をCoreAnimationレイヤーとしてレンダリングします。私はそれを使用していませんが、存在することは知っています。

そして、見てください...他の人のクラスを持ち込んだときにエラーがたくさん発生している場合、私の強い疑いは、あなたが彼らの「使い方」の指示に従っていないということです。彼らは主に、どのフレームワークが必要で、どのプラットフォームをサポートしているかを教えてくれます。このようなものを使おうとしてコンパイルの血まみれになるたびに、戻って、インストール手順の手順を見逃してしまいました。

20
Dan Ray

SVGFlashRendererをコンパイルできました。 iOSの場合、SVGRendererTouchディレクトリからプロジェクトを開く必要があります。また、lib/MROGeometryディレクトリのコンテンツをgithubから個別にダウンロードすることを忘れないでください(ソースツリーのリンクをたどるだけです)。

P.S.私にとって、最良の解決策はSVGKitでしたが、Jason Morisseyのバージョン(別の回答で言及)ではなく、 reklisのフォーク でした。多くのバグが修正されており、はるかに正しい方法で動作します。

6
Zeroid

それは簡単です。

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