W systemie iOS 9.2 można polecić renderowanie kodu HTML WKWebView o tabelach o stałej szerokości większej niż szerokość urządzenia poprzez dodanie znacznika viewport w następujący sposób:Okno podglądu WKWebView nie działa w systemie iOS 9.3
<meta name="viewport" content="width=device-width, shrink-to-fit=YES">
linia ta spowodowała WKWebView skutecznie pomniejszyć rzutnię tak, że cała strona dopasowanie świadczonych w ramce widokowej bez potrzeby przewijania. Na przykład, rozważmy następujący kod, jeśli jest uruchomiony w viewDidLoad w waniliowym pojedynczej aplikacji Widok:
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];
Zawartość czyni tak:
Jednak to zachowanie zmieniło się w 9.3. Identyczny kod uruchomiony w 9.3 czyni tak:
(Chociaż nie można go zobaczyć na zrzucie ekranu znajduje się pasek przewijania poziomego)
Masz inne pytania na StackOverflow i gdzie indziej, to Wygląda na to, że większość ludzi woli zachowanie 9.3. Jednak potrzebuję zachowania 9.2, dopasowania do shrink-to-fit. Moje pytanie brzmi: czy ktokolwiek wie, jak uzyskać takie samo zachowanie dopasowujące w 9.3? Czy ktoś wie, czy ta zmiana jest zamierzona, czy błąd, który zostanie naprawiony w kolejnych wydaniach?
Mój kod testu można znaleźć na https://github.com/nsolter/NSWebViewShrinkTest konkretnie https://github.com/nsolter/NSWebViewShrinkTest/blob/master/NSWebViewShrinkTest/ViewController.m
Używam również width = device-width i widzę ten sam problem. Czy ponownie ładujesz stronę o szerokości = X? – anoop4real
Zasadniczo tak. W rzeczywistości renderuję go w nowym WKWebView, który nie jest aktualnie wyświetlany, a następnie zamienia się w tę nową przeglądarkę internetową. –
Czy masz kilka próbek? – anoop4real