gpt4 book ai didi

ios - 如何在可变高度的 UITableView 中根据内容确定 UIWebView 的高度?

转载 作者:IT王子 更新时间:2023-10-29 07:32:23 29 4
gpt4 key购买 nike

我正在尝试创建一个具有可变高度行的 UITableView,如对 this question 的回答中所述。

我的问题是每个单元格都包含一个具有不同(静态加载)内容的 UIWebView 我不知道如何根据内容计算正确的高度。有没有办法做到这一点?我试过这样的事情:

   (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
WebViewCell *cell = (WebViewCell*)[self tableView:tableView cellForRowAtIndexPath:indexPath];
[cell setNeedsLayout];
[cell layoutIfNeeded];
return cell.bounds.size.height;
}

单元格本身是从一个 nib 加载的,它只是一个包含 UIWebViewUITableViewCell。 (如果单元格只是将自己调整为最大的 html 内容,那也很好,尽管可变高度会更好)。

最佳答案

这段代码对于表格 View 的使用来说可能太慢了,但可以解决问题。看起来没有任何替代方案,因为 UIWebView 不提供对 DOM 的直接访问。

在 View Controller 的 viewDidLoad 中,我在 webview 中加载一些 HTML,加载完成后运行一些 javascript 以返回元素高度。

- (void)viewDidLoad
{
[super viewDidLoad];
webview.delegate = self;
[webview loadHTMLString:@"<div id='foo' style='background: red'>The quick brown fox jumped over the lazy dog.</div>" baseURL:nil];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *output = [webview stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"foo\").offsetHeight;"];
NSLog(@"height: %@", output);
}

关于ios - 如何在可变高度的 UITableView 中根据内容确定 UIWebView 的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/745160/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com