2014-02-26 71 views
1

我試圖在- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 方法中獲取UIWebView滾動內容大小,以便在水平滾動存在的情況下顯示箭頭圖像。如何獲得UIWebView的正確滾動內容大小?

1)我試圖webView.scrollview.contentSize獲得滾動內容的大小,但它總是給我的WebView幀值即使內容大小爲多。

2)我已經試過

CGSize contentSize = CGSizeMake([[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollWidth;"] floatValue], 
           [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"] floatValue]); 

即使上述第二做法是不給予適當的內容大小。

他們是一個直截了當或擰緊的方式來獲得準確的webview的嵌入式scrollView的內容大小?

回答

1

這不是你想要的答案,但我認爲你的方法是錯誤的。

- (BOOL)webView:(UIWebView *)webView should**Start**LoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

你看,當這個方法被調用,這就是所謂的,因爲一個新的請求將被啓動。在這一點上,UIWebView還沒有收到你的頁面,因此不可能給你一個正確的contentSize。

1

也嘗試使用offsetWidth/offsetHeight

CGSize contentSize = CGSizeMake([[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetWidth;"] floatValue], 
           [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue]); 
+0

這工作對我來說,與我有例外添加約20個高度以使其正常工作。 (在我的情況下,主要關注的高度)。似乎不是滾動視圖內容插入,因爲這些似乎是0. –

+0

要小心!我剛剛發現了縮放比例之間的相關性。當我使用JS請求尺寸時,'[scrollView setZoomScale:scale animated:YES];'不再有任何效果,不管是否有呼叫順序。 –