1

我在 Sectioned UiTableViewCell 中给出了一个 webview 像这样

if(section==0)
    {
      static NSString *CellIdentifier=@"Cell";
      UITableViewCell* cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
         if(cell == nil)
        {
            cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]autorelease];


            webView = [[UIWebView alloc] initWithFrame:CGRectZero];
            webView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
            webView.tag = 1001;
            webView.userInteractionEnabled = NO;
            webView.backgroundColor = [UIColor clearColor];
            webView.opaque = NO;


            [cell addSubview:webView];
        }


     webView = (UIWebView*)[cell viewWithTag:1001];

        webView.delegate=self;
        webView.frame=CGRectMake(0, 0, 300, 1000);
        NSLog(@"current mode: %@", [[NSRunLoop currentRunLoop] currentMode]);
        [webView loadHTMLString: [NSString stringWithFormat:[arrSecCount objectAtIndex:0], indexPath.section]baseURL:nil];
         return cell;

    }

where as the content in webview is dynamic.in 

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    {
    if(indexPath.section==0)
     {
        NSString *output = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"];

     return [output floatValue]+300;

      }
        }

但是当 webview 中的内容增加时,它会覆盖其他不适合高度的部分。我已经尝试了很多搜索方法,但没有用。帮我提出你的建议

4

1 回答 1

0

我认为 UITableViewCell 将在 WebView 的内容甚至加载之前获得它的高度......

建议在 webview 的委托方法中:

- (void)webViewDidFinishLoad:(UIWebView *)webView

你做一个

[tableView reloadData];

这意味着您必须保留对 webview 的引用,而不是在每次更新单元格内容时重新加载 HTMLString ...

于 2013-05-27T10:18:50.497 回答