我有一个电子邮件应用程序,
它显示内的UISplitViewController
内容。
一切正常,直到我旋转设备,当已经放大/在UIWebView
。 当旋转装置中,我调整UIWebView
的帧中
UIWebView内容在旋转后未调整为新帧
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
的问题是,当我在UIWebView
放大/缩小,然后旋转该装置。
内容未被调整为新框架的大小,这会导致内容中出现灰色/黑色边框,或者内容可能会水平滚动。
Addional information: UIWebView
是可以滚动的UIScrollView
的子视图。 当UIWebView
完全可见时,UIScrollView
的scrollEnabled
被禁用,并且可以滚动UIWebView
。
上图显示选择电子邮件时的横向
UIWebView
。
这是两种情况下旋转前的状态。
上面的照片示出了UIWebView
被正确调整所述内容到它的新的帧[不旋转之前放大。
横向缩放和旋转,然后以肖像 后上面图为UIWebView
[旋转之前已缩放] - 在- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
>内容不正确显示
的UIWebView.scrollView
的信息:
<_UIWebViewScrollView: 0xb1322a0; frame = (0 0; 768 960); clipsToBounds = YES; autoresize = H; gestureRecognizers = <NSArray: 0xb1321d0>; layer = <CALayer: 0xb132270>; contentOffset: {0, 0}>
框架是正确的!
编辑:解决方案!
我设法通过旋转装置之后更新所述视口宽度来解决它
CGFloat fll_width = self.view.frame.size.width; NSString* adsl_javascript_string = [NSString stringWithFormat:@"var setViewPortScript = document.createElement('meta');\ setViewPortScript.setAttribute('name', 'viewport');\ setViewPortScript.setAttribute('content', 'width = %f');\ document.getElementsByTagName('head')[0].appendChild(setViewPortScript);", fll_width]; [adsc_webview stringByEvaluatingJavaScriptFromString:adsl_javascript_string];
你知道,一个'UIWebView'是UIScrollView'的'所以我只是想知道的逻辑是什么,具有额外'子类UIScrollView'您所描述的所有内容都可以通过“UIWebView”来实现, – Popeye