2009-05-11 6 views
2

UIWebViewのWhy does UIWebView shrink images?に記載されているメタビューポートを使用しています。これは、ポートレートの細かいフォーマットで、変わったスケーリングを補う必要はありません。しかし、いったんランドスケープに回転すると、追加の幅を利用することはできません。意味は、私は景色のためにもっと多くのテキストを1行に収めたいと思います。すべてが1.0でスケーリングされたままです。ビューポートを.75回転にスケーリングし、ポートレートを1.0に戻す方法がありますか?ビューポートを使用したUIWebviewランドスケープフォーマット

答えて

0

この関数は、UIWebViewのサイズが変更されるときにビューポート幅を設定するように記述しました。幅以外のビューポートプロパティを設定するために簡単に適用できます。

-(NSString *) setViewportWidth:(CGFloat)inWidth { 
    NSString *result = [_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"(function (inWidth) { " 
     "var result = ''; " 
     "var viewport = null; " 
     "var content = 'width = ' + inWidth; " 
     "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; " 
       "content = child.getAttribute('content'); " 
       "if (content.search(/width\\s=\\s[^,]+/) < 0) { " 
        "content = 'width = ' + inWidth + ', ' + content; " 
       "} else { " 
        "content = content.replace(/width\\s=\\s[^,]+/ , 'width = ' + inWidth); " 
       "} " 
      "} " 
      "child = child.nextSibling; " 
     "} " 
     "if (null != content) { " 
      "child = document.createElement('meta'); " 
      "child.setAttribute('name' , 'viewport'); " 
      "child.setAttribute('content' , content); " 
      "if (null == viewport) { " 
       "document_head.appendChild(child); " 
       "result = 'append viewport ' + content; " 
      "} else { " 
       "document_head.replaceChild(child , viewport); " 
       "result = 'replace viewport ' + content; " 
      "} " 
     "} " 
     "return result; " 
    "})(%d)" , (int)inWidth]]; 

    return result; 
} 
関連する問題