Pdf UIWebView内容高度在scrollview.contentsize中不准确

Pdf UIWebView内容高度在scrollview.contentsize中不准确,pdf,ios5,uiwebview,scroll,uiwebviewdelegate,Pdf,Ios5,Uiwebview,Scroll,Uiwebviewdelegate,我试图滚动到我在UIWebView中加载的pdf文档中的特定页面。在iOS 5中,我可以通过以下方式做到这一点: pageHeight = webView.scrollView.contentSize.height / numberOfPages; [[webView scrollView] setContentOffset:CGPointMake(0,pageNumber*pageHeight) animated:YES]; 但是,只有当页面已经加载到视图中并且用户操作触发滚动到时,此操作才

我试图滚动到我在UIWebView中加载的pdf文档中的特定页面。在iOS 5中,我可以通过以下方式做到这一点:

pageHeight = webView.scrollView.contentSize.height / numberOfPages;
[[webView scrollView] setContentOffset:CGPointMake(0,pageNumber*pageHeight) animated:YES];
但是,只有当页面已经加载到视图中并且用户操作触发滚动到时,此操作才有效。对于要将新pdf加载到webview中的特定页面的情况,我遇到了问题。我请求加载新的pdf,然后在页面完成加载后执行以下操作:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    int contentHeight = myWebView.scrollView.contentSize.height;
    int pageHeight = contentHeight / 5; // 5 total pages in example PDF
    int scrollDelta = pageHeight*2; // Scroll forward 2 pages

    [[myWebView scrollView] setContentOffset:CGPointMake(0,scrollDelta) animated:YES];
}
虽然myWebView.scrollView.contentSize.height是在初始文档加载后单击按钮运行类似代码时的完整文档高度,但当我加载新文档并且webViewDidFinishLoad触发myWebView.scrollView.contentSize.height时,它等于UIWebview的高度,而不是其中的内容。这当然会使pageHeight比需要的小得多,并且无法滚动到正确的位置

我曾经尝试过一些黑客方法,比如在webViewDidFinishLoad之后将滚动代码延迟一段时间,认为即使我收到回调,页面也可能没有完全加载,但在这些情况下,contentSize.height出于某种原因为0

任何想法都将不胜感激


谢谢

要获取webview中包含的内容大小或页数,可以执行以下操作:

    float w = [[mywebview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].scrollWidth;"] floatValue];
    int pageCount = ceil(w/self.view.frame.size.width);
    [mywebview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(%d,0);",xPosition]];
要滚动到webview中的某个位置,您可以执行以下操作:

    float w = [[mywebview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].scrollWidth;"] floatValue];
    int pageCount = ceil(w/self.view.frame.size.width);
    [mywebview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(%d,0);",xPosition]];

你觉得它很有用。

我也在努力解决同样的问题。你找到解决办法了吗?可能是重复的