2016-09-15 13 views
3

UIWebViewの高さを取得する必要があります。私は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))))); 

を持っているし、まだすべての値が実際の値、その後 小さく、私はAppleのフォーラムからのみのiOS 10

+0

WebViewの高さやWebViewの内容の高さ? –

答えて

13

でこの問題を持っているwebViewDidFinishLoad方法では、あなたの問題が解決

を持っているように見えます

javascript func scrollHeightを使用すると、必要なものを見つけることができます。

NSString *heightStr = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"]; 
あなただけの使用可能な浮動小数点値に変換する必要があり

CGFloat webViewHeight = [heightStr floatValue]; 
+0

これは質問に答えません。 OPは、高さ1のためにそれを使用し、間違った値を得たので、私もそうです。 – Superwayne

+0

それは私のために働いた!私はwebViewDidFinishLoadで正しい値を得ることができました。以前のバージョンのiOSでは@ "document.height"を使用していました。 @ "document.body.scrollHeight;"私の場合、iOs10でうまくいきます。 –

+0

これは働いていて、古いバージョンで動作し、8.1,9.3,10でテスト済みです。 –

関連する問題