2012-03-21 68 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