Próbuję przewinąć do określonej strony w dokumencie PDF, który załadowałem do interfejsu UIWebView. Jestem w stanie to zrobić bez problemu w iOS 5 z wykorzystaniem:Wysokość zawartości UIWebView nie jest dokładna w scrollview.contentsize
pageHeight = webView.scrollView.contentSize.height/numberOfPages;
[[webView scrollView] setContentOffset:CGPointMake(0,pageNumber*pageHeight) animated:YES];
ta działa jednak tylko wtedy, gdy strona została załadowana do widzenia już i przewijania, aby zostało wywołane przez działanie użytkownika. W przypadku, gdy chcę załadować nowy pdf do widoku na konkretną stronę, mam problem. Ja zainteresowanie obciążenie nowej pdf, a następnie robi coś jak poniżej, gdy strona była zakończona ładowania:
- (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];
}
Podczas myWebView.scrollView.contentSize.height jest pełna wysokość dokument po uruchomieniu podobnego kodu kliknięcie przycisku po wczytaniu początkowego dokumentu, po załadowaniu nowego dokumentu i wywołaniu webViewDidFinishLoad myWebView.scrollView.contentSize.height jest równa wysokości UIWebview, a nie zawartej w nim zawartości. To oczywiście powoduje, że pageHeight jest znacznie mniejsza niż musi i nie przewija do właściwej pozycji.
Próbowałem hacków takich jak opóźnianie kodu przewijania przez trochę po webViewDidFinishLoad myślenie może strona nie jest w pełni załadowana, mimo że otrzymuję wywołanie zwrotne, ale w tych przypadkach contentSize.height ma wartość 0 z jakiegoś powodu.
Wszelkie pomysły będą mile widziane.
Dzięki!
Walczę z tym samym problemem. Czy znalazłeś jakieś rozwiązanie? – Niklas
możliwy duplikat [Jak określić rozmiar zawartości UIWebView?] (Http://stackoverflow.com/questions/3936041/how-to-determine-the-content-size-of-a-uiwebview) –