iPhone 开发人员:旋转设备时 UIWebview 会改变垂直位置
我有一个 UIWebView,用户可以在其中浏览一堆本地存储和互连的 HTML 文件。一切都工作得很好,除了在这种特殊情况下:
- 用户导航到一个带有指向第 3 章的片段的页面,导致(正确地)浏览器从片段锚点开始渲染 HTML。
- 用户进一步向下滚动,例如第 4 章。
- 用户将设备旋转至横向。
- UIWebView 现在跳回并显示第 3 章。
所以我的问题是:有没有办法让 UIWebView 显示用户在文档中的最后位置,即使用户在浏览期间滚动和/或旋转设备?
I have a UIWebView in which the user can browse a bunch of locally stored and interlinked HTML files. All works nice and well, except in this particular case:
- User navigates to a page with a fragment pointing to chapter 3, causing (correctly) the browser to render the HTML from the fragment anchor and onward.
- User scrolls a bit further down, say to chapter 4.
- User rotates the device to landscape.
- The UIWebView now jumps back up and shows chapter 3.
So my question is: Is there a way to make UIWebView display the users last location in the document, even though the user scrolls and/or rotates the device during browsing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想原因是滚动保持在相同的像素位置,而不是与页面高度成比例。因此,当用户横向放置设备时,页面宽度会增加,页面高度会减小。
当方向改变时,您可能希望使用 JavaScript 按比例滚动页面,即使用
[webView stringByEvaluatingJavaScriptFromString:]
。伪代码如下:方向改变之前:
方向改变之后:
此页面 给出了一些示例代码。
I imagine the reason for that is, the scroll stays at the same pixel position, instead of proportional to the page height. So, when the user has the device in landscape, the page width increases and the page height decreases.
You may want to use JavaScript to scroll the page proportionally when orientation changes, i.e. use
[webView stringByEvaluatingJavaScriptFromString:]
. Here's the pseudo code:Just before orientation change:
After orientation change:
This page gives some sample code.