我想要存储一个webView的当前滚动位置,然后在再次启动应用程序时,恢复该滚动位置。怎么做?
UIWebView不是UIScrollView的子类,因此您无法按照“正常”的方式执行此操作。
看起来这个javascript解决方案将实现您所需的功能: http://shortdivision.wordpress.com/2008/10/14/going-back-to-the-last-place-you-were-in-a-uiwebview/
scrollView
属性。您可以使用这样定义的CGPoint
类型的变量:CGPoint _scrollPosition;
然后进行初始化:
_scrollPosition = CGPointMake(0, 0);
无论何处需要存储当前位置,请使用以下代码:
_scrollPosition = _webView.scrollView.contentOffset;
实现UIWebViewDelegate
协议并添加代码以恢复在-(void)webViewDidFinishLoad:(UIWebView *)webView
中的位置:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
// .... your other code here ...
if (0 < _scrollPosition.y) {
_webView.scrollView.contentOffset = _scrollPosition;
_scrollPosition = CGPointMake(0, 0);
}
}