2016-09-15 62 views
3

我需要獲得UIWebView的高度。在方法webViewDidFinishLoad我獲取iOS 10網頁視圖的高度

CGFloat height1 = [[webView stringByEvaluatingJavaScriptFromString: @"document.body.scrollHeight"] floatValue]; 
CGFloat height2 = [[webView stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"] floatValue]; 
CGFloat height3 = [[webView stringByEvaluatingJavaScriptFromString: @"document.body.clientHeight"] floatValue]; 
CGFloat height4 = [[webView stringByEvaluatingJavaScriptFromString: @"document.documentElement.clientHeight"] floatValue]; 
CGFloat height5 = [[webView stringByEvaluatingJavaScriptFromString: @"document.documentElement.scrollHeight"] floatValue]; 
CGFloat height6 = [[webView stringByEvaluatingJavaScriptFromString: @"document.documentElement.offsetHeight"] floatValue]; 

height = MAX(height1, MAX(height2, MAX(height3, MAX(height4, MAX(height5, height6))))); 

仍所有值都較小然後真正的價值 我只在iOS的10

+0

webView的高度或視圖內容高度? –

回答

13

有這個問題,從蘋果的論壇,您的問題似乎有了解決

你可以使用javascript func的scrollHeight來找到你需要的東西。

NSString *heightStr = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"]; 

你只需要將其轉換一個可用的浮點值:

CGFloat webViewHeight = [heightStr floatValue]; 
+0

這不回答這個問題。 OP使用那一個爲height1並且得到了一個錯誤的值,我也是如此。 – Superwayne

+0

它爲我工作!我設法在webViewDidFinishLoad中獲得了正確的值。我在早期版本的iOS中使用@「document.height」。 @ 「document.body.scrollHeight;」在我的情況下,在iOs10中運行良好。 –

+0

它的工作和舊版本的工作,與8.1,9.3和10測試 –