我已向下滚动带有已加载页面的Web视图。现在,我要以编程方式返回到已加载页面的顶部。而且我想进行动画滚动。
我实现了以下解决方案:
__auto_type animation = ^{
self.webView.scrollView.contentOffset = CGPointZero;
};
[UIView animateWithDuration:0.3
delay:0.0
options:UIViewAnimationOptionBeginFromCurrentState
animations:animation
completion:NULL];
我注意到动画过程中背景闪烁。我研究了这个问题,发现在动画过程中Web视图未完全渲染(即从当前位置到目标位置),而仅渲染了内容目标值周围的可见区域并添加了一些额外区域。例如。对于我的可见区域高度667和目标内容偏移量(0,0),渲染区域的爱好者边界在[1000,1200]范围内。该值似乎是恒定的,并且与iPhone型号或iOS版本无关。
我注意到,如果在开始动画之前将内容偏移值设置为渲染范围内,则背景不会闪烁,并且我的问题已解决。即在上面的代码解决了我的问题之前,添加了以下行:
self.webView.scrollView.contentOffset = CGPointMake(0, 400);
看起来苹果做了一些渲染过程优化。我想知道是否可以在我的代码中使用此问题。我的问题如下:
a。是否可以获取目标内容偏移量的渲染区域下限? b。无法管理此值,即更改此值还是为我的操作禁用此优化?