WKWebView no cambia el tamaño cuando cambia el contenido.

WKWebView no cambia de tamaño cuando cambia el contenido.

Aquí hay un fragment de código:

@IBOutlet weak var containingView: UIView! var webView: WKWebView! override func viewDidLoad() { super.viewDidLoad() let contentController = WKUserContentController(); self.webView = WKWebView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), configuration: WKWebViewConfiguration()) self.webView.autoresizingMask = [.FlexibleHeight] self.webView.loadHTMLString(__, baseURL: __)) self.webView.scrollView.bounces = false self.webView.scrollView.scrollEnabled = false self.containingView.addSubview(self.webView) } 

¿Qué function debe agregarse para poder interceptar el tamaño de contenido que se está cambiando y cambiar el tamaño de Visor que lo contiene?

Lo que me detuvo fue tener una altura inicial pequeña de WKWebView

 webView = WKWebView(frame: CGRectMake(0, 0, self.view.frame.width, 150), configuration: configuration) 

en lugar de

 webView = WKWebView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), configuration: configuration) 

Conceptualmente en el objective c deberías hacer como a continuación.

Dos cosas: asegúrate de tener estas properties:

 self.webView.scalesPageToFit = YES; self.webView.contentMode = UIViewContentModeScaleAspectFit; 

Y finalmente calcule la altura del contenido webView como: – webView.isLoading es una de las properties más importantes. De hecho, en una única llamada a una url web se llama varias veces.

 - (void)webViewDidFinishLoad:(UIWebView *)webView{ if (webView.isLoading == NO)// as it is called multiple times so wait untill last call { CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue]; } } 

Así es como debe calcular la altura de la vista web.

puedes echar un vistazo aquí ya que WKWebView no tiene una eliminación que puedes utilizar para get el tamaño de contenido en su lugar usa KVO:

¡El ejemplo de KVO puede ser que te ayudará más!