2015-03-13 174 views
1

enter image description here我遇到了问题,例如我在Iphone中使用UIWebView和以HTML格式存储数据的数据存储为astring的html数据并传递给UIWebView,我得到它很好但i要更改UIWebView的大小按内容大小iPhone中的UiWebview根据内容大小调整大小

- (void)viewDidLoad { 
     web.delegate = self; 
     NSString * str = [dict objectForKey:@"terms"]; 
     [web loadHTMLString:str baseURL:nil]; 
    } 
- (void)webViewDidStartLoad:(UIWebView *)webView 
{ 
     CGRect frame = web.frame; 
     frame.size.height = 1; 

     CGSize fittingSize = [web sizeThatFits:CGSizeZero]; 
     frame.size = fittingSize; 
     web.frame = frame; 

     NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height); 

    web.frame = CGRectMake(10, 100, web.scrollView.contentSize.width, web.scrollView.contentSize.height); 

} 
+0

您使用AutoLayouts ..吗? – Vidhyanand 2015-03-13 13:11:10

+0

没有我没有使用自动布局 – 2015-03-13 13:11:28

+0

set self.webview.frame = self.view.frame;或 self.webview.frame = [[UIScreen mainScreen] bounds]; – Vidhyanand 2015-03-13 13:13:38

回答

1

设置你的web view delegateframe

yourwebview.frame=[[UIScreen mainScreen] bounds]; 
yourwebview.delegate = self; 

end然后使用这个委托方法来设置高度。

- (void)webViewDidFinishLoad:(UIWebView *)aWebView { 
     CGSize contentSize = aWebView.scrollView.contentSize; 
     NSLog(@"webView contentSize: %@", NSStringFromCGSize(contentSize)); 
     yourwebview.contentsize = contentSize; 
    } 
0

与您的Web视图的委托方法做它:

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    webView.frame = CGRectMake(0, 0, webView.scrollView.contentSize.width, webView.scrollView.contentSize.height); 
} 
+0

好的,我会尝试它 – 2015-03-13 13:23:44

0

你可以使用委托方法webViewDidFinishLoad:但有时这就是所谓的前HTML完全呈现,并且会导致错误的高度值。

要使这项工作可靠,您必须等待HTML完全呈现,然后使用Javascript将正确的高度发送到您的UIWebView。

请看看这个blogpost我前一段时间写的。