La rotation automática de UIWebView corrompe el contenido de la vista web (capturas de pantalla en el interior)

Estoy teniendo un problema con la rotation automática de UIWebView.
la vista web se desennetworkinga bien, pero el contenido no lo es.
como puede ver en la captura de pantalla inferior, hay un margen negro, y sé que es la vista web ya que puedo ver los desplazadores cuando me desploop.

el controller de vista tiene:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return YES; } 

la vista web tiene una máscara de cambio de tamaño automática completa, y la vista cambia el tamaño de las subvistas.

Intenté un montón de trucos de stackoverflow y google, pero ninguno funcionó.
esto sucede solo en algunos sitios, pero si abro los sitios problemáticos en el safari mobile o incluso en el browser ios opera, gira correctamente.

EDITAR: un ejemplo de un sitio problemático: http://m.calcalist.co.il

la vista web se establece en el generador de interfaces y se carga con este código:

 [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.calcalist.co.il"]]]; scalesPageToFit = YES; // doesn't help 

¡Gracias!

antes de la rotación

despues de la rotacion

Puede establecer la propiedad scalesPageToFit la vista web en YES .

Si está generando el HTML usted mismo, también puede establecer la metalabel de viewport .

Si la página ya ha configurado la vista, puede configurar su viewcontroller para que sea el delegado de la vista web y cambiarlo de esta forma:

 - (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *javaScript = @"var metatags = document.getElementsByTagName('meta'); \ for(cnt = 0; cnt < metatags.length; cnt++) { \ var element = metatags[cnt]; \ if(element.getAttribute('name') == 'viewport') { \ element.setAttribute('content','width = device-width; user-scalable = yes'); \ } \ }"; [webView stringByEvaluatingJavaScriptFromString:javaScript]; } - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { if ([self interfaceOrientation] == UIInterfaceOrientationPortrait) [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.zoom = 1.0;"]; else [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.zoom = 1.5;"]; } 

Establezca el marco en willAnimateRotationToInterfaceOrientation y luego configure las metatags.

También puede configurar esta propiedad de UIWebView :

 webView.autoResizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;