使用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到网络视图的中间位置。
答案 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
因为我想的自动布局。