UIWebView的大小调整动画化

5
我正在尝试对UIWebView进行调整大小的动画,但是遇到了困难,不知道该去哪里求助。
这是我想要实现的效果:我有两个视图,一个在另一个上面(想象一下两个正方形,一个在另一个上面)。上面的视图是UIWebView,下面的将被称为通用的UIView(我没有任何关于下面的问题)。我每次加载新内容时都可以很好地调整这两个视图。我还有一个按钮,可以隐藏或显示底部视图,具体取决于其先前的状态。
问题就出在这里。当底部视图被隐藏时,按下按钮会放大其框架并减小UIWebView框架。这没问题。但如果底部视图正在显示并按下按钮,则UIWebView框架将变大,并且存在一些问题:
  • 如果UIWebView滚动到底部,它会在向下移动(变大)之前“跳”一下;

  • 如果UIWebView滚动到顶部,只要有足够的内容可以在底部视图后面滚动,它就会像预期的那样向下移动。

总的来说,我的经验是,如果尚未滚动到底部视图后面的内容比正在发生的调整量更大,则不会发生跳动。否则,会发生跳动。

我做了很多研究,问过一个先前的问题,所以我认为这是懒加载UIWebView的结果。这种“跳跃”发生是为了自动调整大小(显示所有内容,即使有些内容在屏幕外),然后再向下移动。否则,它将同时扩展和加载新内容,需要更多的处理器功率。

我已经尝试了框架、边界和中心的调整,但至今没有取得任何进展。我的假设正确吗?难道没有简单的方法可以调整UIWebView的大小,使其只向下扩展(变大)并保持底部滚动条吗?
理论上,我认为正确的方法是将UIWebView向上扩展到更大的尺寸,保持其当前的底部位置,然后再通过动画将其向下移动。这样,顶部的内容就已经加载完毕了。但我尝试了很多次都没有成功。
如果有人有相关经验,请分享一下。非常感谢。
1个回答

0
如果滚动到足够高的网页底部,请尝试在不改变其大小的情况下向下动画化Web视图,然后更改Web视图的高度,使顶部回到应该在的位置。您可以使用某种模式暂时填充Web视图向下移动时留下的空间。

这对用户来说不太美观...即使如此,我也不知道有什么方法可以检测UIWebView是否已经滚动到足够的位置。我尝试过使用JavaScript(页面偏移量和总滚动高度),但没有成功。我需要一种获取底部偏移量而不是顶部偏移量的方法(这就是pageoffset返回的内容)。 - Aloha Silver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接