从后台返回后,UIWebView在iOS 7上更改contentSize

The*_*ter 11 iphone objective-c uiwebview ios ios7

问题:

UIWebViewUINavigationBar和我之间有一个UITabBar.在iOS 7上,当应用程序进入后台并再次返回时,似乎更改的contentSize属性UIWebView使其上方有一个白色块.

监测后contentSizeUIWebView,当应用程序进入前景(我通过观察检查UIApplicationDidBecomeActiveNotification),它已经49中减去从它的高度.

截图(编辑敏感信息): 截图的编辑版本

我的设置:

我使用的是UIWebView在我的UIViewController嵌入在一个UITabBarViewController嵌入的UINavigationController.我正在使用故事板并具有"调整滚动视图插入","从NIB调整视图大小"和"在条形图下扩展边缘".在UIWebView我没有选中"Scales Page To Fit".我没有在viewDidAppearviewWillAppear方法中做任何事情.我在iOS 6上测试过它,问题不会发生在那里.另外,我没有使用自动布局.

相关守则:

self.webView.scrollView.scrollEnabled = NO;
self.webView.scrollView.bounces = NO;
self.webView.scalesPageToFit = NO;
Run Code Online (Sandbox Code Playgroud)

监测后contentSize和框在viewDidAppear&appHasGoneInForeground:

帧从320x455到320x455,contentSize从320x504变为320x455

有没有人知道我在这里缺少什么和/或为什么会这样?谢谢你的时间!

小智 20

请尝试self.automaticallyAdjustsScrollViewInsets = NO使用webView的viewController.

automaticAdjustsScrollViewInsets是iOS7 SDK中的新属性,默认值为YES.它可以在iOS7中自动调整viewController的scrollView.您可以通过谷歌搜索获得更多信息.

我希望它可以帮到你.


pay*_*yal 6

您可以在上面设置SetContentSize或frame:

-(void)viewDidLayoutSubviews
Run Code Online (Sandbox Code Playgroud)

在xib bottomscle中设置UIWebview

Autorising

其他明智的你可以设置

self.edgesForExtendedLayout=UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars=NO;
self.automaticallyAdjustsScrollViewInsets=NO;
Run Code Online (Sandbox Code Playgroud)


Dan*_*nra 3

“我在 UIViewController 中使用 UIWebView,该 UIViewController 嵌入在 UINavigationController 中嵌入的 UITabBarViewController 中”。

Apple 不支持此功能。关联

...收容顺序很重要;只有某些安排才有效。从子级到父级的遏制顺序如下:

内容视图控制器和具有灵活边界的容器视图控制器(例如页面视图控制器)

导航视图控制器

标签栏控制器

分割视图控制器

我会首先尝试更简单且有效的容器布置,看看是否可以解决问题。请注意,即使您解决了这个特定问题,如果继续使用层次结构,您仍然可能会遇到意外且可能不一致的 UI 问题。