2016-04-05 30 views
1

私はストーリーボードでUIWebviewを持っています。ビュー内にHTMLページをロードしています。 iOS 9.2までは欲望としてはうまくいきますが、iOS 9.3で同じ動作をしているときは、ページがデフォルトでズームインされて表示されます。 scalesPageToFitプロパティを設定しました。webViewのscalesPageToFitがiOS 9.3で動作していません

self.webView.scalesPageToFit=TRUE; 

私はUIWebviewのためにプログラム的にフレームを設定しようとしました。

これは、HTMLからの私のMetaタグ..

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <meta name="language" content="en" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=2.2, user-scalable=yes"> 
    <meta name="apple-mobile-web-app-capable" content="yes"> 
    <meta name="apple-mobile-web-app-status-bar-style" content="black"> 

ある私がしようとしている多くの記事で示唆したように、私は、metaタグで

<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 

を試してみました。

[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ", (int)self.view.frame.size.width]]; 
+0

私はここに述べたように、私は、9.3にWKWebViewと同じ問題を抱えています:http://stackoverflow.com/questions/36633066/wkwebview-viewport-shrink-to-fit-not-working-on-ios- 9-3 –

答えて

3

ように見えます回避策。数字770は、ウェブページからウェブページのコンテンツにフィッティングするために必要な幅(ポイント)とスケールの比率です。

UPDATE

は私が名前のビューポート(コード怒鳴る)

と直接メタタグを変更するJavaScript、付属の理由です、ソリューション時間以上の時間に原因が正確に特定のhtmlタグ内の文字をスケーリングしていないことが判明しました
NSString *js = [NSString stringWithFormat:@"document.querySelector('meta[name=viewport]').setAttribute('content','width=device-width; initial-scale=%.2f; user-scalable=no;');",scale]; 
0
- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    //make sure that the page scales when it is loaded :-) 
    theWebView.scalesPageToFit = YES; 
    return YES; 
} 

は、私は解決策は、私は、これはハックであることを認識してい

webview.scalesPageToFit = YES; 
    float width = webview.frame.size.width; 
    float scale = width/770; 

    NSString *js = [NSString stringWithFormat:@"document.body.style.zoom=%.2f;",scale]; 
    [webview stringByEvaluatingJavaScriptFromString:js]; 

怒鳴るこのコードを使用していた私にとって、非常に同じ問題があった適切な溶液

+0

私はすでにそれを試みました。 の結果は同じです。 –

関連する問題