【问题标题】:How to remember scrolled position of UIWebView如何记住 UIWebView 的滚动位置
【发布时间】:2012-08-26 09:55:37
【问题描述】:

在 Safari 中,当你

  1. 访问一个很长的页面,例如w3c.org,向下滚动到页面中的某个位置
  2. 杀死 Safari
  3. 再次打开 Safari,它会自动记住您在页面中的最后位置

如何在UIWebView 中执行此操作?或者有可能吗?

谢谢。

【问题讨论】:

    标签: iphone objective-c ios xcode uiwebview


    【解决方案1】:

    我能想到的最简单的方法是保存网络视图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];
    }
    

    ^^未经测试,让我知道它对你有什么作用。

    【讨论】:

    • 在尝试此操作之前,请确保等到内容完全加载(webView 委托)。
    猜你喜欢
    • 1970-01-01
    • 2012-03-11
    • 2014-10-30
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 2013-09-21
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多