一个解法
最后我通过给出这个来解决它:
[[[_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);
我猜每次 Web 视图框架的更改都会tempEdgeInsets.bottom
因为520
自动布局而产生影响。