UIWebView自动旋转损坏网页视图内容(截图里面)

我有一个UIWebView自动旋转的问题。
Web视图可以正常显示,但内容不是。
正如你可以在底部的屏幕截图中看到,有一个黑色的边缘,我知道这是webview,因为我可以看到滚动当我滚动。

视图控制器有:

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

webview具有完整的自动resize掩码,并且该视图是自动调整子视图的大小。

我尝试了一堆来自stackoverflow和谷歌的技巧,但没有一个工作。
这只发生在一些网站上,但如果我打开有问题的网站在移动Safari或甚至ios Opera浏览器,它正确旋转。

编辑:一个有问题的网站的例子: http : //m.calcalist.co.il

webview在界面构build器中设置并使用以下代码加载:

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

谢谢!

在旋转之前

旋转后

您可以将网页视图的scalesPageToFit属性设置为YES

如果您自己生成HTML,则还可以设置viewport元标记。

如果页面已经设置了视口,你可以设置你的视图控制器是networking视图的委托,并像这样改变它:

 - (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;"]; } 

willAnimateRotationToInterfaceOrientation设置框架,然后设置元标记。

你也可以设置UIWebView这个属性:

 webView.autoResizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;