【发布时间】:2009-09-08 15:50:24
【问题描述】:
我想存储 webView 的当前滚动位置以及当我再次启动应用程序时。我想再次恢复那个滚动位置..
怎么做???
【问题讨论】:
我想存储 webView 的当前滚动位置以及当我再次启动应用程序时。我想再次恢复那个滚动位置..
怎么做???
【问题讨论】:
UIWebView 不是 UIScrollView 的子类,因此您不能以“正常”方式进行操作。
看起来这个 javascript 解决方案可以满足您的需求:http://shortdivision.wordpress.com/2008/10/14/going-back-to-the-last-place-you-were-in-a-uiwebview/
【讨论】:
由于 iOS5 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);
}
}
【讨论】: