如何在uiwebview上设置滚动位置

时间:2011-12-12 07:10:01

标签: iphone ios objective-c uiwebview

我想在我的uiwebview上加载指定行。 我试过了

  

[webView stringByEvaluatingJavaScriptFromString:@“window.scrollTo(0.0,   100.0)“];

但它不起作用。我的网页浏览仍然从页面顶部开始。 我只是想知道它,因为我在UIWebview内加载了UIView。 在我的UIView上查看我的代码:

- (void)loadView {
    webview = [[WebViewDetail alloc]initWithFrame:[UIScreen mainScreen].applicationFrame];        //initialize a mainView is a UIWebVIew
    webview.managedObjectContext = self.managedObjectContext;
    webview.kitab = self.kitab;
    webview.currentPasal = self.pasal;
    self.title = [NSString stringWithFormat:@"%@ %d", self.kitab, webview.currentPasal];
    self.view=webview;    //make the mainView as the view of this controller    
}

我将滚动定位脚本放在我的UIWebView

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    int height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue];

    NSString* javascript = [NSString stringWithFormat:@"window.scrollBy(0, %d);", height];   
    [self stringByEvaluatingJavaScriptFromString:javascript];
}

在这种情况下,我想在加载视图时将我的uiwebview放到页面底部。 但它完全不起作用,为什么? 我做错了吗?

2 个答案:

答案 0 :(得分:19)

尝试

webview.scrollView.contentOffset = CGPointMake(0, 100);

答案 1 :(得分:6)

确保将视图控制器设置为您的网络视图为UIWebViewDelegate,并在头文件(.h)的@interface中声明。

[yourWebView setDelegate:self];



然后,在webViewDidFinishLoad:方法中,插入以下代码:

[yourWebView.scrollView scrollRectToVisible:CGRectMake(0, yourWebView.bounds.size.height + 100, 1, 1) animated:NO];