1

私は現在、ニュースを表示するためにwebViewを使用しています。ニュースの下にいくつかのボタンを配置するつもりです。言葉、webViewの高さを動的に変更する方法は?

4

4 に答える 4

4

デリゲート メソッド webViewDidFinishLoad 内でこれを行います。

- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
    CGFloat height = [[aWebView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue];
    CGFloat width = [[aWebView stringByEvaluatingJavaScriptFromString:@"document.width"] floatValue];
    aWebView.frame = CGRectMake(aWebView.frame.origin.x,aWebView.frame.origin.y,width, height);
}
于 2013-06-20T04:20:46.320 に答える
4

これを試して

    - (void)webViewDidFinishLoad:(UIWebView *)webView
    {
        NSString *string = [_webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"body\").offsetHeight;"];
        CGFloat height = [string floatValue] + 8;
        CGRect frame = [_webView frame];
        frame.size.height = height;
        [_webView setFrame:frame];

        if ([[self delegate] respondsToSelector:@selector(webViewController:webViewDidResize:)])
        {
            [[self delegate] webViewController:self webViewDidResize:frame.size];
        }
    }
于 2013-06-20T04:40:10.423 に答える
1

sizeThatFits:webView には、webView がビュー階層に追加され、html の読み込みが完了すると、コンテンツのサイズを返すメソッドがあります。

しかし、これは警告なしでは機能しません。フィッティング サイズ メソッドを呼び出す前に、webview のフレームを低い値に設定する必要があります。

例:幅が固定で高さが可変の場合

//Set a very low height
CGRect webViewFrame = self.webView.frame;
webViewFrame.size.height = 5.0f;
self.webView.frame = webViewFrame;
//Re calculate the size that fits
CGSize size = [self.webView sizeThatFits:webViewFrame.size];
self.webViewFrame.size = size;
self.webView.frame = webViewFrame;

PS: 元の作品にクレジットを与えたいです。私はまだSOで探しています

于 2013-06-20T04:39:37.147 に答える
1
According to your device type like iPhone 4 or iPhone 5 you can set your webview
The web view has finished loading.
    - (void)webViewDidFinishLoad:(UIWebView *)webView {

        [DejalActivityView removeView];

        if ([objSpineCustomProtocol windowHeight] == 480) {

            termsWebView.frame = CGRectMake(termsWebView.frame.origin.x
                                            ,termsWebView.frame.origin.y
                                            ,termsWebView.frame.size.width
                                            ,350);

        }

    }// End of Method webViewDidFinishLoad

//VKJ

于 2013-11-18T10:45:57.913 に答える