Я хотел бы знать, как манипулировать файлами SVG, которые я загрузил в UIWebview. В настоящее время я загружаю файл SVG в файл HTML, а затем загружаю его в UIWebview. Я предполагаю, что вы будете использовать Javascript для этого, но я не уверен, как именно это происходит. В идеале я хотел бы иметь возможность манипулировать SVG на лету в приложении для iPad. Я знаю, что вы можете «внедрить» код в UIWebview, но мои попытки не увенчались успехом. Ясно как грязь? Ну, возможно, немного кода поможет.
Вот как я загружаю 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];
}
Вот код внутри html-файла, который загружается в UIWebview:
<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.
Любая помощь будет оценена. Благодарю.