2013-06-20 60 views
1

我目前正在使用webView来显示新闻,下面的消息,我打算把一些buttons.so我需要得到的webView的高度,以改变按钮的位置后,所有下载的webView的高度。换句话说,如何动态改变webView的高度?如何动态改变webView的高度?

+0

self.webView.frame.size.height为u想要什么? – iCoder

回答

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]; 
     } 
    } 
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); 
} 
1

web视图具有方法sizeThatFits:一旦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

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

+0

这不是“动态”,你只是将webView的高度固定为350,而设备是iPhone 4. – piaChai

+0

是的,另一种方式使其成为“动态”..自动布局可用... –