использовать видовой экран с svg, iphone uiwebview - PullRequest
2 голосов
/ 28 апреля 2011

на этой странице: http://developer.apple.com/library/safari/#documentation/appleapplications/reference/safarihtmlref/Articles/MetaTags.html

объясняется, как использовать область просмотра для определения масштаба по умолчанию на веб-странице для устройств ios.

Моя проблема заключается в том, что я хочу отобразить файл 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, поэтому в некоторых случаях мне нужно сбросить масштаб.

извините за мой английский, спасибо за вашу помощь

1 Ответ

0 голосов
/ 29 апреля 2011

Вам нужно это вставить в XML SVG? Я бы загрузил svg-файл в виде изменяемой строки и использовал некоторое совпадение, чтобы найти для него правильное местоположение и вставить его в это место.

если вы хотите, чтобы это было в разметке документа, вы должны ссылаться на файл svg in и html / xhtml / xml.

    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];
...