简体   繁体   English

如何记住UIWebView的滚动位置

[英]How to remember scrolled position of UIWebView

In Safari, when you 在Safari中,当你

  1. Visit a very long page, eg w3c.org, scroll down to somewhere in the page 访问一个很长的页面,例如w3c.org,向下滚动到页面中的某个位置
  2. Kill Safari 杀死Safari
  3. Open Safari again, it will automatically remember your last position within a page 再次打开Safari,它会自动记住您在页面中的最后位置

How to do this in UIWebView ? 如何在UIWebView执行此操作? Or is it possible? 或者有可能吗?

Thanks. 谢谢。

The simplest way I can think of to achieve this would be to save the web views contentOffset.y and then set it back to what you saved the next time it is loaded. 我能想到的最简单的方法是保存Web视图contentOffset.y ,然后将其设置回下次加载时保存的内容。

Saving this into NSUserDefaults will allow the value to be restored even if the app is killed, or even if an update is installed. 将此保存到NSUserDefaults将允许恢复该值,即使应用程序被NSUserDefaults ,或者即使安装了更新。

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

Then to restore: 然后恢复:

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

^^Untested, let me know how it works for you. ^^未经测试,让我知道它对你有用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM