iphone - 如何记住 UIWebView 的滚动位置

标签 iphone objective-c ios xcode uiwebview

在 Safari 中,当您

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

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

谢谢。

最佳答案

我能想到的实现此目的的最简单方法是保存 Web View 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];
}

^^未经测试,让我知道它是如何为你工作的。

关于iphone - 如何记住 UIWebView 的滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12129181/

相关文章:

ios - 如何在 UITableView 中更改基于索引的部分通用颜色

ios - 哪些 JavaScript 库/框架已被证明可以通过 PhoneGap 在 iPad 上提供出色的用户体验?

iphone - OpenGL ES : getting a fixed size for an object

iphone - 在 Interface Builder 中使用自定义字体定位 UILabel

iphone - 如何让 iPhone 应用程序出现在 Spotlight 中,但查询不完全匹配

ios - 将 Set 对象解析为 UILabel

iphone - 哪个服务器可以托管 iOS 推送通知

ios - 将值设置为另一个类的属性的类对象 - Objective c

ios - Xcode 9 没有可编译的体系结构(ARCHS=arm64、VALID_ARCHS=armv6 armv7)

ios - 设置 UIVIew 的框架,使其不被导航栏隐藏