将视口与 svg、uiwebview iphone 一起使用

发布于 2024-11-03 10:37:04 字数 1214 浏览 0 评论 0原文

在此页面中:http://developer. apple.com/library/safari/#documentation/appleapplications/reference/safarihtmlref/Articles/MetaTags.html

它解释了如何使用视口来定义默认值缩放适用于 iOS 设备的网页。

我的问题是我想在我的 uiwebview 上显示 SVG 文件。我以这种方式加载我的 svg :

- (void)viewDidLoad {

// Loading the SVG file from resources folder
NSString *filePath = [[NSBundle mainBundle]
                      pathForResource:@"carteregionvin" ofType:@"svg"];
NSData *svgData = [NSData dataWithContentsOfFile:filePath];

NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSURL *baseURL = [[NSURL alloc] initFileURLWithPath:resourcePath isDirectory:YES];

[self.webView   loadData:svgData 
            MIMEType:@"image/svg+xml"   
            textEncodingName:@"UTF-8" 
            baseURL:baseURL];   

我的 svg 已正确加载和显示,但是我如何使用/插入此:

<meta name = "viewport" content = "initial-scale = 1.0">

与 loadata 来定义比例?

如果不可能,objectiveC 有没有办法在单击 SVG 文件后重置缩放级别?因为我的scalePageToFit是true,所以在某些情况下我需要重置缩放。

抱歉我的英语不好,谢谢你的帮助

in this page : http://developer.apple.com/library/safari/#documentation/appleapplications/reference/safarihtmlref/Articles/MetaTags.html

it's explain how to use viewport to define default scale in a webpage for ios devices.

My probleme is that I want to display an SVG file on my uiwebview. I load my svg this way :

- (void)viewDidLoad {

// Loading the SVG file from resources folder
NSString *filePath = [[NSBundle mainBundle]
                      pathForResource:@"carteregionvin" ofType:@"svg"];
NSData *svgData = [NSData dataWithContentsOfFile:filePath];

NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSURL *baseURL = [[NSURL alloc] initFileURLWithPath:resourcePath isDirectory:YES];

[self.webView   loadData:svgData 
            MIMEType:@"image/svg+xml"   
            textEncodingName:@"UTF-8" 
            baseURL:baseURL];   

My svg is correctly loaded and displayed, but how can i use/insert this :

<meta name = "viewport" content = "initial-scale = 1.0">

with a loadata to define the scale?

if it's not possible, is there a way with objectiveC to reset the zoom level after a click on the SVG file? Cause my scalePageToFit is true, so i need in some case to reset the zoom.

sorry for my english, thanks for your help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等数载,海棠开 2024-11-10 10:37:04

你需要将其插入到 svg 的 xml 中吗?我会将 svg 文件作为可变字符串加载,并使用一些匹配找到它的正确位置,并将其插入到该位置。

如果您希望将其包含在文档标记中,您应该在 html/xhtml/xml 文件中引用 svg。

    NSMutableString * svgString = [[NSMutableString alloc] initWithContentsOfFile:@"/some/path" encoding:NSUTF8StringEncoding error:nil];
    [svgString replaceOccurrencesOfString:@"<metadata" withString:@"<metadata \n<meta name = \"viewport\" content = \"initial-scale = 1.0\">" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [svgString length])];
    NSData * svgData = [svgString dataUsingEncoding:NSUTF8StringEncoding];

do you need that inserted into the svg's xml? I would load the svg file as a mutable string and use some matching find the proper location for it, and insert it at that location.

if you want that to be in document markup you should reference the svg in and html/xhtml/xml file.

    NSMutableString * svgString = [[NSMutableString alloc] initWithContentsOfFile:@"/some/path" encoding:NSUTF8StringEncoding error:nil];
    [svgString replaceOccurrencesOfString:@"<metadata" withString:@"<metadata \n<meta name = \"viewport\" content = \"initial-scale = 1.0\">" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [svgString length])];
    NSData * svgData = [svgString dataUsingEncoding:NSUTF8StringEncoding];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文