如何记住UIWebView的滚动位置

时间:2012-08-26 09:55:38

标签: iphone objective-c ios xcode uiwebview

在Safari中,当你

  1. 访问一个很长的页面,例如w3c.org,向下滚动到页面中的某个地方
  2. 杀死Safari
  3. 再次打开Safari,它会自动记住您在页面中的最后位置
  4. 如何在UIWebView中执行此操作?或者有可能吗?

    感谢。

1 个答案:

答案 0 :(得分:10)

我能想到的最简单的方法是保存Web视图contentOffset.y,然后将其设置回下次加载时保存的内容。

将其保存到NSUserDefaults将允许恢复该值,即使应用程序被终止,或者即使安装了更新。

[[NSUserDefaults standardUserDefaults] setFloat:myWebView.scrollView.contentOffset.y forKey:@"offsetKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

然后恢复:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [myWebView.scrollView setContentOffset:CGPointMake(0, [[NSUserDefaults standardUserDefaults] floatForKey:@"offsetKey"]) animated:YES];
}

^^未经测试,请告诉我它是如何运作的。