【发布时间】:2013-12-30 21:47:17
【问题描述】:
我有集合视图,我在单元格中放置 UITableView。 该表视图中的两个单元格包含 UIWebView。 我需要动态计算 UIWebViews 的高度。所以我接下来做
- (void)webViewDidFinishLoad:(UIWebView *)webView
..... CGFloat webViewHeight = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"]floatValue];
但问题是,当此单元格用于数组中的另一个对象时,结果的高度是使用先前上传的内容计算的。我已经尝试使用下一个东西来解决这个问题 [webView stringByEvaluatingJavaScriptFromString:@"document.body = \"\";"]; 但这对我没有帮助。它在模拟器上运行良好,但在设备上却有问题。 + 如果我在上传新的 html 之前延迟了
[webView loadHTMLString:sourceHTML baseURL:nil];
我可以看到导致计算错误高度的先前内容。
更新 1 这是最适合我的解决方案
CGRect frame = webView.frame;
frame.size.height = 1;
webView.frame = frame;
frame = webView.frame;
frame.size = [webView sizeThatFits:CGSizeZero];
webView.frame = frame;
从框架中我可以得到正确的高度。
【问题讨论】:
-
你找到解决办法了吗?
标签: uitableview uiwebview uicollectionview uiwebviewdelegate