iOS网页视图的滚动条变为应该的一半

时间:2013-11-05 09:01:08

标签: webview ios7 scrollbar

使用Xcode 5,iOS 7。

将Web视图的帧从(0,45,320,568 - 20 - 45 - 49)​​更改为(0,0,320,568 - 20)或更改回来后出现问题,其超级视图为容器,框架(0,20,320,548)到应用程序窗口的rootViewController。

将Web视图的帧更改回(0,45,320,568 - 20 - 45 - 49)​​到其容器时,Web视图的垂直区域在65到(568 - 49)​​之间,但其滚动条是从65到网络视图的中间位置。

1 个答案:

答案 0 :(得分:0)

解决方案

最后我通过这个来解决这个问题:

[[[_webViewContainer webView] scrollView] setScrollIndicatorInsets:UIEdgeInsetsMake(0, 0, 0, 0)];

每当在Web视图中加载新网页时,也就是说,这个UIWebViewDelegate协议方法的最开始

-(BOOL)webView:shouldStartLoadWithRequest:navigationType

因此,即使打开了自动布局,我们也可以强制滚动视图(Web视图的属性)为滚动指示器提供正确的滚动范围。

可能的原因

出现意外行为的原因可以通过以下方式看出:

UIEdgeInsets tempEdgeInsets;
tempEdgeInsets = [[_webView scrollView] scrollIndicatorInsets];
NSLog(@"scroll view edge insets = %f, %f, %f, %f", tempEdgeInsets.top, tempEdgeInsets.bottom, tempEdgeInsets.left, tempEdgeInsets.right);

每次网页视图框架的更改都会给tempEdgeInsets.bottom 520因为我想的自动布局。