我不知道我在问题标题中是否问对了,但在这里我将简要描述
我有一个 UIWebView 并根据 div 加载内容,每个 div 在 loadRequest 上都有唯一的 ID。 好像我的内容太大了,所以我分解成多个部分并在您点击“阅读更多”后加载剩余内容
这个“阅读更多”事件在我通过 javascript 处理的自动滚动上触发。因此,一旦该事件被触发,它只需使用 window.location.href = div1+div2(这只是一个示例)附加数据(我有另一种方法)。
现在的主要问题是,当我向下滚动时,无论我在哪里收到“阅读更多”消息,它都会自动触发,然后将数据添加到当前 div 并显示(用户感觉它是一个继续阅读)但是当
我向上滚动 它的行为很奇怪,因为它只是将数据附加到 div 并滚动到 setYScroll(updatedlocation);
updatedlocation 用于当我们将内容添加到 div 时它应该滚动到用户所在的相同位置。
让我们从一个例子开始,假设当前我正在阅读 div2,当我滚动向上“阅读更多”事件时触发并将 div1 添加到 div2,然后调用 web View 委托(delegate) shouldStartLoadWithRequest。
所以每次向上滚动时它都会将内容更新到 div2,但首先它会带我到 div1 的前一个 s 位置,然后带我到我当前正在阅读的 div2 位置。 所以感觉真的很奇怪,突然间它把我带到某个地方一段时间,然后在一秒钟的摩擦中把我带到我现在的位置
我试过这个解决方案, 我想拍摄屏幕截图并使用当前 UIWebView 的屏幕截图图像创建一个 imageView,并在发生“Read More”事件时将其放在 webview 上。 Web View 加载完成后,删除 imageView 并显示 Web View 。 但这是以同样的方式发生的,问题是每件事都在 webview 委托(delegate)下发生。我仍然无法弄清楚发生了什么事?这个问题的解决方案是正确的 trackj 还是有更好的解决方案
最佳答案
我也有类似的情况。我所做的是让两个 UIWebView 相互重叠。当需要更新一个 View 时,我捕获滚动位置,在隐藏的 UIWebView 中加载新数据,当另一个 UIWebView 完成加载其数据时,它将其滚动位置设置为第一个 webview 的当前滚动位置,然后隐藏第一个 webview 并取消隐藏。 它非常无缝并且工作得很好。
关于javascript - UIWebView scrollTo 应该表现流畅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7000850/