iOS 9.2では、デバイス幅よりも固定幅のテーブルを使用したWKWebViewレンダリングHTMLは、次のようなビューポートタグを追加することで、WKWebViewビューポートがiOS 9.3で機能しないように調整する
<meta name="viewport" content="width=device-width, shrink-to-fit=YES">
この行はWKWebViewが効果的にスクロールバーを必要とせずにビューフレームで全体のレンダリングされたページにフィットするようにビューポートをズームアウトさせました。バニラ単一のビューアプリでのviewDidLoadで実行した場合たとえば、次のコードを考えてみます。
WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];
WKWebView *newWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0,40,self.view.frame.size.width, self.view.frame.size.height - 40) configuration:wkWebConfig];
NSString *toRender = @"<head><meta name=\"viewport\" content=\"width=device-width, shrink-to-fit=YES\"></head><body><table width=700 style='background-color: blue; color:white; font-size=20px'><tr><td>this is some text that is long enough to exceed the width of the iphone 6 unless shrink-to-fit is applied</td></tr></table></body>";
[newWebView loadHTMLString:toRender baseURL:nil];
[self.view addSubview:newWebView];
内容は次のようにレンダリング:
ただし、この動作が9.3に変更されました。
(あなたはスクリーンショットでそれを見ることはできませんが、水平スクロールバーがある)
stackoverflowの上の他の質問を検索し、他の場所で、それ:9.3で実行して、同一のコードは次のようにレンダリング他のほとんどの人が9.3の行動を好むように思える。しかし、私は9.2の動作が必要です。だから、私の質問です:誰も9.3で同じシュリンク・フィット・ビヘイビアを得る方法を知っていますか?この変更が意図的なものなのか、それとも後続のリリースで修正されるバグなのか誰にでも分かりますか?
私のテストコードが https://github.com/nsolter/NSWebViewShrinkTestで発見することができ、特にhttps://github.com/nsolter/NSWebViewShrinkTest/blob/master/NSWebViewShrinkTest/ViewController.m
私はwidth = device-widthも使用しており、同じ問題に直面しています。あなたはwidth = Xでページをリロードしていますか? – anoop4real
本質的に、はい。私は実際に表示されていない新しいWKWebViewでそれをレンダリングしています。そして、新しいWebviewで交換します。 –
サンプルがありますか? – anoop4real