iphone UIWebView存储当前滚动位置?

g.r*_*ion 5 iphone uiwebview

我想存储webView的当前滚动位置,以及当我再次启动应用程序时.我想再次恢复滚动位置..

怎么做 ???

Sim*_*ide 6

UIWebView不是UIScrollView的子类,因此您无法以"正常"方式执行此操作.

看起来这个javascript解决方案将满足您的需求:http://shortdivision.wordpress.com/2008/10/14/going-back-to-the-last-place-you-were-in-a-uiwebview/


dem*_*ten 5

由于iOS5 UIWebView具有scrollView属性.您可以使用如下CGPoint定义的类型变量:

CGPoint _scrollPosition;
Run Code Online (Sandbox Code Playgroud)

然后初始化它:

_scrollPosition = CGPointMake(0, 0);
Run Code Online (Sandbox Code Playgroud)

无论您需要存储当前位置,请使用:

_scrollPosition = _webView.scrollView.contentOffset;
Run Code Online (Sandbox Code Playgroud)

实现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);
    }
}
Run Code Online (Sandbox Code Playgroud)