2012-01-26 18 views
9

Bir UIWebView'a yüklediğim pdf belgesindeki belirli bir sayfaya ilerlemeye çalışıyorum. Ben kullanarak iOS 5'teki bir sorun olmadan bunu yapmak mümkün duyuyorum: sayfa zaten görünüme yüklenmiş ve kaydırma bir kullanıcı eylemi ile tetiklenir eğerUIWebView içerik yüksekliği scrollview.contentsize içinde doğru değil

pageHeight = webView.scrollView.contentSize.height/numberOfPages; 
[[webView scrollView] setContentOffset:CGPointMake(0,pageNumber*pageHeight) animated:YES]; 

Bu yalnızca bununla çalışır. Web sayfasına yeni bir pdf yüklemek istediğim bir sayfa için sorun yaşıyorum. Yeni pdf yükünü talep eden ve ardından aşağıdaki sayfa tamamladı yükleme gibi bir şey yapıyorum:

- (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]; 
} 

Ben benzer bir kod çalıştırdığınızda myWebView.scrollView.contentSize.height tam Doküman yüksekliği iken Yeni bir belge yüklediğimde ve webViewDidFinishLoad yangınlarım myWebView.scrollView.contentSize.height, UIWebview öğesinin yüksekliğiyle aynı değil, ilk belge yüklendikten sonra bir düğmeyi tıklatır. Bu elbette pageHeight'ın olması gerekenden çok daha küçüktür ve doğru konuma kaydırmaz.

WebViewDidFinishLoad sonra geri arama alıyorum olsa bile sayfa tam olarak yüklenemediğini, ancak bu durumlarda contentSize.height bir nedenle 0 olduğunu sonra kaydırma kodu gecikme gibi hack denedim.

Herhangi bir fikir çok takdir edilecektir.

Teşekkürler!

float w = [[mywebview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].scrollWidth;"] floatValue]; 
    int pageCount = ceil(w/self.view.frame.size.width); 

ve aşağıdaki yapabilir senin Web görünümündeki belirli bir pozisyona geçmek için:

+0

Aynı sorunla uğraşıyorum. Herhangi bir çözüm buldunuz mu? – Niklas

+0

olası bir kopyası [Bir UIWebView'in içerik boyutu nasıl belirlenir?] (Http://stackoverflow.com/questions/3936041/how-to-determine-the-content-size-of-a-uiwebview) –

cevap

1

içerik boyutu veya aşağıdaki yapabilir Web görünümündeki içerdiği sayfa sayısını elde etmek için
[mywebview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(%d,0);",xPosition]]; 

Bunu faydalı buluyorsunuz.