2

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

当用户编辑网页视图的内容时,我的问题就出现了;我需要弄清楚新内容的高度并相应地更新表格视图。我已经设置了更新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];
4

1 回答 1

2

它有效,但仅当

  • 使 webview 变小(如 5px)
  • 加载它并等待完成
  • 然后调用 sizeToFit
  • 获得尺寸 THEN

广告::D 在 github 上查看我的 M42WebviewTableViewCell 类

于 2012-11-24T10:59:11.690 回答