1

View に UIWebView を追加し、ScrollView にそのビューを追加しています。

UIWebView Content のフレームを取得したい。フレームをビューとスクロールビューに設定できますか?

高さはjavascriptで取得できると思います。以下に言及するように:

float height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue];

しかし、ビューを回転させてdidRotateFromInterfaceOrientation::(UIInterfaceOrientation)fromInterfaceOrientationメソッドで UIWebView コンテンツの高さを再計算すると、コンテンツの高さが増加しました。

では、向きを回転させているときに適切な高さを得るにはどうすればよいか教えてください。

ありがとう。

4

2 に答える 2

5

この方法を採用します。

- (void) webViewDidFinishLoad:(UIWebView *)webView{
    CGRect frame = wvContent.frame;
    CGSize fittingSize = [wvContent sizeThatFits:CGSizeZero];
    frame.size = fittingSize;
    wvContent.frame = frame;
}

次に、デバイスが回転するたびにこのメソッドを呼び出します。

- (void) reloadContent
{
    CGRect frame = wvContent.frame;
    frame.size.height = 1;
    frame.size.width = wvContent.frame.size.width; // you should change webview's width here.
    wvContent.frame = frame;

    [wvContent loadHTMLString:yourHTML baseURL:nil]; // reload webview
}

お役に立てば幸いです:)

于 2012-08-23T07:57:47.810 に答える
0

すべてのコンテンツがロードされたときに高さを取得していることを確認してください。

UIWebViewのデリゲート メソッドで高さを計算するメソッドを追加できます

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    float height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue];
}
于 2012-09-24T07:35:29.520 に答える