当前位置: 首页 > 知识库问答 >
问题:

基于内容的动态UITableView单元格高度

吉泰宁
2023-03-14

我有一个用自定义单元格(继承自用户界面视图Ell)填充的用户界面视图,每个单元格都包含一个UIWeb视图,该视图根据其内容自动调整大小。事情是这样的,如何根据内容(可变网页视图)更改 UITable 视图单元格的高度。

该解决方案必须是动态的,因为用于填充< code>UIWebViews的HTML是从不断变化的提要中解析的。

我觉得我需要使用UITableView委托方法heightForRowAtIndexPath

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ;//This needs to be variable
}

我无法进入牢房或里面的东西。我可以在< code > cellforrowatdinexpath 中更改单元格的高度吗?

任何帮助都是伟大的。谢谢

两年多前我问过这个问题。通过介绍自动布局,可以找到iOS7的最佳解决方案:

在 UITableView 中使用自动布局进行动态单元格布局

在iOS8上,此功能内置于SDK中

共有3个答案

刘辰钊
2023-03-14
self.tblVIew.estimatedRowHeight = 500.0; // put max you expect here.
self.tblVIew.rowHeight = UITableViewAutomaticDimension;
钮承恩
2023-03-14

我发现动态高度的最佳方法是预先计算高度,并将其存储在某种类型的集合(可能是数组)中。假设单元格主要包含文本,您可以使用-[NSString sizeWithFont:constrainedToSize:lineBreakMode:]计算高度,然后在heightForRowAtIndexPath:

如果内容不断变化,您可以实现一种方法,在提供新数据时更新高度数组。

司马飞鸿
2023-03-14

这通常效果很好:

目标C:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewAutomaticDimension;
}

Swift:

override func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
    return UITableViewAutomaticDimension;
}
 类似资料:
  • 可变长度的文本数据正在注入到表视图单元格标签中。为了正确调整每个单元格高度的大小,我在中实现了: 这估计高度为88.0像素,如果更大,应该会自动调整高度大小。它非常适用于尚未滚动到的单元格(因为在滚动到单元格时被调用),但不适用于最初在加载数据时在屏幕上呈现的单元格。 我尝试过重新加载数据(正如许多其他资源中建议的那样): 在这两个和,它没有帮助。我迷路了…有人知道如何渲染最初在屏幕上加载的单元格

  • 我是swift新手,正在从事Swift 3.0中的一个项目,其中我有一个包含三个自定义单元格的UITableView。在第一个中,我只有一个图像、按钮和标签。在第二个,我有一个图像加上标签以及可扩展和可折叠的标题。因此,第二个单元格有三个不同的部分。最后,第三个也只包含一个标签。在第一个单元格中,UILabel被设置在包含一个人的描述的图像下面(已经设置了约束)。我的要求是只对第一个单元格根据描述

  • 谷歌电子表格中有一个项目列表,我们需要链接谷歌硬盘上另一个文件夹中的一组文件。链接的功能如下所示: 我们遇到的问题是,如果文件夹的内容与列表的顺序不完全匹配,则文件到行项目的顺序将不同步。如果同一行中另一个单元格的内容与文件名中的内容匹配,我们希望某些文件超链接到工作表中的某些单元格。我们希望避免为每个行项目手动创建链接。这在谷歌表单中是可能的吗?

  • 场景- > TableView高度是使用纵横比相对于superview的高度动态设置的。 TableViewCell的高度是根据表格视图的高度计算的: 问题 - 最初在委托方法中没有正确计算表格视图高度。但在滚动单元格后正确计算。 尝试的解决方案: 在视图中重新加载。 调用 在单元格中进行. 有什么方法可以正确计算出这个表格的高度吗?

  • 我有一个表格视图,每个单元格都有自己的高度,因此不适合使用。相反,现在我使用和。这意味着它调用单元格上的函数来确定它的高度。这一切都很好。 问题是当你重新加载屏幕上的单元格时。例如,向下滚动以显示单元格10,然后重新加载单元格10,效果很好。但是当您开始向上滚动,经过您已经看到的单元格时,它会恢复到每个单元格的estimatedRowHeight,完全不考虑< code>sizeThatFits,

  • 我觉得这可能是一个常见的问题,我想知道是否有任何共同的解决方案。 基本上,我的UITableView拥有每个单元格的动态单元格高度。如果我不在UITableView的顶部,并且我< code > table view . reloaddata(),向上滚动会变得不稳定。 我认为这是因为我在向上滚动时重新加载了数据,UITableView正在重新计算每个可见单元格的高度。如何减轻这种情况,或者如何只