2016-02-26 95 views
1

我們使用HandleBar js lib生成動態html,在iOS WebView加載Html之後,它只獲取模板,高度不正確。過了一段時間,模板中的圖像已經加載完成。但我無法獲得高度。無法在iOS中的WebView中獲取動態html高度

I`ve試圖藪方法如下:

-(void)webViewDidFinishLoad:(UIWebView *)webView 
{ 

    _webViewHeight = [[_webView_wares stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] integerValue]; 


    if (_webViewHeight > 0) 
    { 
     _webView_wares.frame = CGRectMake(0, 0, KSCREEN_WIDTH, _webViewHeight); 

     [_webView_wares sizeToFit]; 

     NSLog(@"webViewHeight高度:%ld",(long)_webViewHeight); 

     [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:2] 
         withRowAnimation:UITableViewRowAnimationFade]; 
    } 

} 
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{ 
    if ([keyPath isEqualToString:@"contentSize"]) 
    { 
     NSInteger nextHeight = [[_webView_wares stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] integerValue]; 


     if (_webViewHeight < nextHeight) 
     { 
      _webViewHeight = nextHeight; 
      CGRect newFrame  = _webView_wares.frame; 
      newFrame.size.height = _webViewHeight; 
      _webView_wares.frame = newFrame; 

      [_webView_wares sizeToFit]; 
      [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:2] 
          withRowAnimation:UITableViewRowAnimationFade]; 
     } 
    } 
} 

但沒有上述的得到正確的高度。來人幫幫我!

回答

0

如果您使用自動佈局,然後設置高度約束到網查看和創建的這個限制

可變出口

float heightWebview=0; 
UIWebView *objWebView; 

通行證HTML字符串的WebView(寫的cellForRowAtIndexPath)

objWebView = [UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, heightWebview) 
[objWebView loadHTMLString:<Pass your HTML string> baseURL:nil]; 

的WebView委託方法

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSLog(@"Height Webview: %f", objWebView.scrollView.contentSize.height); 
    heightWebview=objWebView.scrollView.contentSize.height; 
    [objTableView reloadData]; 
} 

加入我「沒有使用故事板我使用純代碼TableViewCell插入的WebView這兩表視圖委託方法

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewAutomaticDimension; 
} 

-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return 44.0; 
} 
+0

。我需要在釣魚時加載webView的高度,然後更新單元格的高度以適應佈局!謝謝你的幫助! –