In iOS 9.2, ein WKWebView HTML-Darstellung mit fester Breite Tabellen größer als die Gerätebreite gesagt werden könnte, um den Inhalt zu schrumpfen durch Hinzufügen eines Ansichtsfenster Tag wie folgt angepasst:WKWebView Ansichtsfenster schrumpfen-to-fit funktionieren nicht auf iOS 9.3
<meta name="viewport" content="width=device-width, shrink-to-fit=YES">
Diese Linie verursacht die WKWebView effektiv so das Ansichtsfenster zu verkleinern, dass die gesamte gerenderte Seite passen in den Ansichtsrahmen, ohne dass Bildlaufleisten. Betrachten wir zum Beispiel den folgenden Code, wenn in viewDidLoad in einer Vanille einzigen Ansicht app laufen:
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];
Der Inhalt macht wie folgt aus:
jedoch dieses Verhalten in 9.3 geändert hat. Der gleiche Code in 9.3 läuft macht wie folgt aus:
(Auch wenn Sie es nicht im Screenshot sehen kann, gibt es eine horizontale Scrollbar)
Suche weitere Fragen auf Stackoverflow und anderswo, es scheint wie die meisten anderen Menschen bevorzugen das Verhalten 9.3. Ich benötige jedoch das 9.2 Verhalten von shrink-to-fit. Meine Frage ist also: Weiß jemand, wie man das gleiche Schrumpf-zu-Fit-Verhalten in 9.3 erhält? Und weiß jemand, ob diese Änderung absichtlich ist oder ein Bug, der in späteren Versionen behoben wird?
Mein Testcode kann bei https://github.com/nsolter/NSWebViewShrinkTest gefunden werden, und zwar https://github.com/nsolter/NSWebViewShrinkTest/blob/master/NSWebViewShrinkTest/ViewController.m
ich auch width = device-width verwenden und das gleiche Problem gegenüber. Laden Sie die Seite mit width = X neu? – anoop4real
Eigentlich ja. Ich rende es tatsächlich in einem neuen WKWebView, das gerade nicht angezeigt wird, und tausche es dann in diesem neuen Webview. –
Haben Sie einige Proben? – anoop4real