[XCODE] UIWebViewで表示しているコンテンツの高さを取得する方法
今日はUIWebViewに関するネタで、
UIWebViewに表示しているコンテンツの高さを取得する方法を記載したいと思います。
コンテンツの高さが大きく、スクロールがTop位置にない場合には、NavigationBarを 非表示にしたいと思い、コンテンツの高さを知る方法を探しました。
他にもやり方があるかもしれませんが、今回はJavaScriptをUIWebViewで動かして、その結果として コンテンツの高さを知る方法を記載します。
実際のソースコードは、以下となります。
phoneGapとかは、この仕組みを使ってるのかなぁと、わくわくしました。
今回も最後までお読み頂きましてありがとうございました。
UIWebViewに表示しているコンテンツの高さを知る
UIWebViewは、表示するHTMLの内容によって、コンテンツの高さやスクロール可能範囲が変わります。コンテンツの高さが大きく、スクロールがTop位置にない場合には、NavigationBarを 非表示にしたいと思い、コンテンツの高さを知る方法を探しました。
他にもやり方があるかもしれませんが、今回はJavaScriptをUIWebViewで動かして、その結果として コンテンツの高さを知る方法を記載します。
実際のソースコードは、以下となります。
// UIWebViewでのロードが終わった際に呼び出されるDelegateメソッド。 -(void)webViewDidFinishLoad:(UIWebView *)webView { NSString *output = [webView stringByEvaluatingJavaScriptFromString: @"document.documentElement.clientHeight;"]; int contentHeight = [output intValue]; NSLog(@"contentHeight is %d", contentHeight); }UIWebViewの読み込みが終わった後に、 「stringByEvaluatingJavaScriptFromString:」メソッドを用いて、UIWebView上でJavaScriptを実行し、 コンテンツの高さを取得しています。
最後に
Objective-C上からJavaScriptを実行できるなんて知らなかったです(*´∇`*)phoneGapとかは、この仕組みを使ってるのかなぁと、わくわくしました。
今回も最後までお読み頂きましてありがとうございました。