我想知道如何操纵我已经加载到UIWebview的SVG文件。目前我正在将SVG文件加载到HTML文件中,然后将其加载到UIWebview中。我认为你会使用Javascript来做到这一点,但我不知道如何完全去做。理想情况下,我希望能够在iPad应用程序中随时操作SVG。我知道你可以将代码'注入'UIWebview,但是我的尝试没有成功。清除泥浆?那么也许一些代码会有所帮助。UIWebview操纵SVG'飞'
这里是我的HTML文件加载到的UIWebView视图控制器内.m文件:
- (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];
}
这里是被装入的UIWebView html文件内的代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>SVG</title>
</head>
<body>
<object id="circle" data="Circle.svg" width="250" height="250" type="image/svg+xml"/>
</body>
</html>
...最后这里是SVG文件中的代码:
<svg xmlns="http://www.w3.org/2000/svg">
<circle id="redcircle" cx="200" cy="50" r="50" fill="red" />
</svg>
它创建了一个很好的升在UIWebview中出现红圈。现在我想能够在视图控制器.m文件中回放操作该圆。例如,当用户触摸iPad屏幕时,将填充颜色属性更改为绿色。这甚至有可能吗?
我希望这一切都有道理。这有点复杂。但最终我想要做的是用SVG在HTML框架中随时创建图形并将其显示在UIWebview中。
任何帮助,将不胜感激。谢谢。
:
你可以用它执行感谢您的答复。我尝试了你的建议,但唉,这个圈子仍然顽固地发红。我尝试在添加UIWebview之后执行代码并在触摸事件中没有成功。这与我如何设置HTML和SVG有关吗? – Kangoo
不,这是我的错。 :)获取红色圆形对象以便可以更改颜色需要两个步骤 - (1)getElementById('circle')获取SVG对象,然后(2)getElementById('redcircle')获取圆形本身。我错过了我给出的示例代码中的一个步骤。现在更正。 – Euan
伴侣,你是一个血腥的传奇!谢谢你的帮助。非常感激。 – Kangoo