确定UIWebView内容的高度(嵌入在UITableViewCell中)

时间:2012-05-18 00:42:47

标签: uitableview uiwebview uiscrollview uiwebviewdelegate

我有一个UITableView,其中包含可变高度的UIWebView,用户可以编辑每个网页视图的内容。每个单元格的内容(Web视图)链接到NSManagedObject子类,其子内容的高度存储为contentHeight。当最初创建一组新内容时,它会使用一组具有设定高度的默认数据填充,因此没有问题。

当用户编辑网页视图的内容时,我的问题就出现了;我需要弄清楚新内容的高度并相应地更新tableview。我已经设置了更新相应对象的已保存contentHeight变量的逻辑,但我找不到可靠的方法来确定新内容的高度。下面我列举了一些我尝试过但无法完成工作的方法。 任何的帮助将不胜感激,我已经被困了一个多小时了:(

失败的方法:

[[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight"] floatValue];

[[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];

[[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];

[[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('sdcontent').offsetHeight"] floatValue];

CGRect webViewFrame = [webView frame];
CGRect temp = webViewFrame;
webViewFrame.size.height = 1;
[webView setFrame:webViewFrame];
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
webViewFrame.size = fittingSize;
[webView setFrame:temp];

1 个答案:

答案 0 :(得分:2)

它有效,但仅限于

  • 使webview变小(如5px)
  • 加载并等待完成
  • 在其上调用sizeToFit然后
  • 大小那么

广告:: D看到我在github上的M42WebviewTableViewCell类与此挣扎