【iOS】UIWebViewで表示されている要素の高さを取得

2014/12/27
追記しました↓

【iOS】UIWebViewで表示されている要素の高さを取得 バージョン2 - ふるすたっくえんじにあっぽい人の日記



ひさびさiOS
うん、一応iOSもまだやってます。

動的に変えたいじゃん?webViewのサイズ。
とりあえずこんなhtml


<!DOCTYPE html>
<html>
<head>
<title>aaaaa</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta name="viewport" content="user-scalable=no;">
<link rel="stylesheet" type="text/css" href="../css/hoge.css" media="all">
</head>
<body>
<div id="contents">
あーぁ、だりー
</div>
</body>
</html>



取得したい要素にid振っとくのがポイントですねー
んでもって、こう。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *heightStr = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"contents\").clientHeight;"];
    if (![NSString isNilOrEmpty:heightStr])
        webView.height = [heightStr floatValue];
}

ただ単にObjective-cからJavascript使えるよーってだけですね。