2012/07/04更新

[XCODE] UIWebViewで表示しているコンテンツの高さを取得する方法

このエントリーをはてなブックマークに追加            

今日はUIWebViewに関するネタで、 UIWebViewに表示しているコンテンツの高さを取得する方法を記載したいと思います。

UIWebView Content Height



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とかは、この仕組みを使ってるのかなぁと、わくわくしました。

今回も最後までお読み頂きましてありがとうございました。






こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。