2012-03-21 74 views
1

我已经为UIWebView设置“scalesPageToFit”属性为YES。 它获得缩放,但是当页面加载时,内容是用小字体不能被读取而不捏的。我们可以将缩放比例设置为默认值吗?UIWebView缩放

+0

我究竟想要什么,加载HTML内容时,它应该是100%缩放。当我捏缩放它应该放大。 – Bharathi 2012-03-22 06:53:29

+0

您是否尝试过我发布的代码?试试看 - 它会解决你的问题! – dom 2012-03-23 08:31:42

+0

'scalesPageToFit = YES'它的工作原理,但它会改变你的默认内容大小,[看看我的回答这将有助于你。](http://stackoverflow.com/questions/7134576/enable-zooming-pinch-on-uiwebview/23971234#23971234) – iPatel 2014-07-22 03:20:03

回答

3

这更多的是你装那么的UIWebView本身的网站...

如果你有控制研究在显示HTML只是把<meta name="viewport" content="width=device-width;initial-scale=1.0"><head>内。

如果不是:您可以将JavaScript插入了一个UIWebView并执行它,所以有一种简单的方法使用一小段代码来插入meta标签:

NSString *result = [webView stringByEvaluatingJavaScriptFromString: 
    [NSString stringWithFormat:@"var result = '';" 
    "var viewport = null;" 
    "var content = null;" 
    "var document_head = document.getElementsByTagName('head')[0];" 
    "var child = document_head.firstChild;" 
    "while (child)" 
    "{" 
    " if (null == viewport && child.nodeType == 1 && child.nodeName == 'META' && child.getAttribute('name') == 'viewport')" 
    " {" 
    "  viewport = child;" 
    "  viewport.setAttribute('content' , 'width=device-width;initial-scale=1.0');" 
    "  result = 'fixed meta tag';" 
    " }" 
    " child = child.nextSibling;" 
    "}" 
    "if (null == viewport)" 
    "{" 
    " var meta = document.createElement('meta');" 
    " meta.setAttribute('name' , 'viewport');" 
    " meta.setAttribute('content' , 'width=device-width;initial-scale=1.0');" 
    " document_head.appendChild(meta);" 
    " result = 'added meta tag';" 
    "}" 
    ] 
]; 

注意,该片段将杀死由HTML代码的作者所做的视口设置...所以你可能会得到奇怪的结果。

+0

'var viewport = document.querySelector('head meta [name = viewport]')''而不是那堆JS? – andytuba 2014-05-14 16:09:01