代码之家  ›  专栏  ›  技术社区  ›  thomax

iPhone dev:UIWebview在旋转设备时移动垂直位置

  •  1
  • thomax  · 技术社区  · 14 年前

    我有一个UIWebView,用户可以在其中浏览大量本地存储和链接的HTML文件。所有的工作都很好,除了这个特殊的情况:

    • 用户导航到一个带有指向第3章的片段的页面,使浏览器(正确地)从片段锚点开始呈现HTML。
    • 用户向下滚动一点,比如说第4章。
    • 用户将设备旋转到横向。

    所以我的问题是:有没有办法让UIWebView显示用户在文档中的最后一个位置,即使用户在浏览时滚动和/或旋转设备?

    1 回复  |  直到 14 年前
        1
  •  4
  •   William Niu    14 年前

    我想原因是,滚动保持在相同的像素位置,而不是与页面高度成比例。因此,当用户将设备置于横向时,页面宽度增加,页面高度降低。

    当方向改变时,您可能需要使用JavaScript按比例滚动页面,即使用 [webView stringByEvaluatingJavaScriptFromString:] . 以下是伪代码:

    就在方向改变之前:

    1. int oldVerticalPosition=从页面顶部开始的垂直滚动位置
    2. int olePageHeight=整页的高度

    方向改变后:

    1. newPageHeight=整页的高度

    This page 给出了一些示例代码。