好的,所以我知道这个问题已经被问过了。有很多好的建议,但我无法按预期工作。我正在尝试创建一个 tableview 单元格,它可以根据不同的 html 动态设置其加载高度。大家的建议是使用下面的方法。
-(void)webViewDidFinishLoad:(UIWebView *)webView
他们说要使用javascript计算高度,如下所示:
NSString *output = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"];
或者做这样的事情(我创建了这个):
self.webView = webView;
CGRect frame = webView.frame;
frame.size.height = 1;
webView.frame = frame;
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
webView.frame = frame;
这两种方法都返回 webview 的正确高度,但它们发生在 tableview 初始化之后。这个 webViewDidFinishLoad 在 heightForRowAtIndexPath 方法之后被调用。因此,在构建表格时,我没有单元格的高度。因此,每个人都说好,然后在您的 webViewDidFinishLoad 中重新加载表格视图,这又可以工作了,但我不喜欢这样,因为存在滞后,并且当您到达该部分时,它会使表格视图的滚动不连贯。我怎样才能解决这个问题?并使其顺利?我在想也许在加载视图之前以某种方式确定 webview 的高度,但不知道我会怎么做。还尝试将 html 转换为纯文本字符串,但这会导致错误高度,因为 html 有空格和内容,而纯文本没有。任何帮助,将不胜感激!