2011-08-08 18 views
2

私はHtml 5ファイルの中にSVGを使って基本円を描き、それをUIWebviewの内部にロードしようとしています。しかし、私がコンパイルして実行すると何も画面に表示されません(iPad上でテスト)。インラインSVGを持つUIWebview Html5

正しいコードを使用していないか、またはHTML5のSVGがUIWebviewでサポートされていませんか?ここで

はのUIWebViewのコードです:私は多くを読んされている

<!DOCTYPE html> 
<head> 
<title>SVG</title> 
<meta charset="utf-8" /> 
</head> 
<body> 
<svg id="svgelem" height="200" xmlns="http://www.w3.org/2000/svg"> 
    <circle id="redcircle" cx="50" cy="50" r="50" fill="red" /> 
</svg> 
</body> 
</html> 

:ここ

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSString* path = [[NSBundle mainBundle] pathForResource:@"SVG" ofType:@"html"]; 
    NSString* content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; 

    webView = [UIWebView new]; 
    webView.frame = CGRectMake(0, 0, 1024, 768); 
    webView.dataDetectorTypes = UIDataDetectorTypeAll; 
    webView.userInteractionEnabled = YES; 
    [webView loadHTMLString:content baseURL:[[NSBundle mainBundle] bundleURL]]; 

    [self.view addSubview:webView]; 
    [webView release]; 
} 

はresourcesフォルダに呼ばれSVG.htmlファイル内のコードです私は答えを困惑させることができませんでした。

何か助けていただければ幸いです。ありがとう。

答えて

3

これは、Safari(またはUIWebViewの内部にあるもの)に埋め込みSVG要素に問題があるためです。私はAppleがそれを修正しようとしていることを聞いた、とにかく...
はこれを試してみてください:

svg.html:

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title>SVG</title> 
    </head> 

    <body> 
    <object data="circle.svg" width="250" height="250" 
    type="image/svg+xml" /> 
    </body> 
</html> 

circle.svg:

<svg xmlns="http://www.w3.org/2000/svg"> 
<circle r="50"/> 
</svg> 
+0

グレート、トリックをしました。うまくいけば、アップルが問題を解決するのにずっと待つ必要はない。しかし、とにかくこの作品に感謝しています。ありがとうございました!あなたは大きな緑のチックを得る:) – Kangoo

+0

これはおそらく別の投稿ですが、あなたはhtmlファイルからSVGを操作する方法を知っていますか?たとえば、塗りつぶしの色を緑に変更します。私はSVGファイル内でこれを行う方法を知っていますが、htmlファイルでこれを行うことをお勧めします。あなたが好きなら私は別の刻みを得ることができるように別の郵便を始めることができます。再度、感謝します。 – Kangoo

+0

ちょっと気にしないでください:)私はいくつかの調査をしましたが、Safariはxmlファイル内のインラインSVGタグに問題がないようです。参考までにhttp://dl.dropbox.com/u/31624902/test.xmlをご覧ください。助けが必要な場合は私に相談してください。 – Piotr

関連する問題