私はUIWebViewで読み込んだPDFドキュメントの特定のページにスクロールしようとしています。UIWebViewのコンテンツの高さがscrollview.contentsizeで正しくない
pageHeight = webView.scrollView.contentSize.height/numberOfPages;
[[webView scrollView] setContentOffset:CGPointMake(0,pageNumber*pageHeight) animated:YES];
ページがすでにビューにロードされているとまでスクロールはユーザアクションによってトリガーされた場合にのみしかし、作品を:私が使用してのiOS 5で問題なくこれを行うことができると思います。私は特定のページにwebviewに新しいPDFをロードする場合は、私は問題を抱えています。 myWebView.scrollView.contentSize.heightがフルドキュメントの高さですが、私は上のようなコードを実行するときに
- (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];
}
:ページの読み込みが完了したとき、私は新しいPDFの負荷を要求し、次のようなものをやっています最初のドキュメントがロードされた後にボタンがクリックされ、新しいドキュメントを読み込み、webViewDidFinishLoadが発生すると、myWebView.scrollView.contentSize.heightはUIWebviewの高さに等しく、その内部のコンテンツではありません。これはもちろん、pageHeightを必要以上に小さくし、正しい位置にスクロールしません。
webViewDidFinishLoadの後にスクロールコードを少し遅らせるようなハックを試みましたが、コールバックを取得しているにもかかわらずページが完全にロードされていない可能性がありますが、何らかの理由でcontentSize.heightが0です。
任意のアイデアをいただければ幸いです。
ありがとうございます!
float w = [[mywebview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].scrollWidth;"] floatValue];
int pageCount = ceil(w/self.view.frame.size.width);
、あなたは次の操作を行うことがあなたのWebViewの中の特定の位置にスクロールする:
を
私は同じ問題を抱えています。解決策は見つかりましたか? – Niklas
[UIWebViewのコンテンツサイズを決定する方法]の複製が可能ですか?(http://stackoverflow.com/questions/3936041/how-to-determine-the-content-size-of-a-uiwebview) –