UITableView 和自动高度

Posted

技术标签:

【中文标题】UITableView 和自动高度【英文标题】:UITableView and automatic height 【发布时间】:2015-05-08 03:43:37 【问题描述】:

好的,所以我有一个 UITableView 和一个自定义 UITableViewCell。这个自定义单元格有一个标题,下面是一个子标题,下面是一个UIImageView(宽高比合适),下面是一个按钮。现在标题将始终是一行文本,因此唯一具有不同高度的元素是UIImageView。现在我已经分配了以下约束:

title label - top space 8px, left space 8px, right space 8px

sub-title label - top space 10px, left space 8px, right space 8px

image - top space 20px, left space 8px, right space 8px

button - top space 8px, left space 8px, bottom space 40px

现在我没有给图像视图设置高度或宽度限制,因为图像的大小会有所不同。我还确定要创建从单元格顶部到底部的一系列约束。我还设置了postTable.rowHeight = UITableViewAutomaticDimension 自动调整单元格高度并给出了一个公平的高度估计。

但是,当我运行应用程序时,图像视图的顶部和底部都有大量空间。这很奇怪,因为我将图像的约束设置为子标题标签下方 20 像素,并且我将按钮的约束设置为图像下方 8 像素,这根本不会发生。这里可能是什么问题?我在上面发布的约束是整个视图的唯一约束。

【问题讨论】:

张贴图片说明发生了什么以及您想要什么 【参考方案1】:

好的,所以想通了,对于任何偶然发现这个问题的人来说,问题是图像纵横比适合模式,它会抛出单元格高度计算。您需要做的是在设置 UIViewImage.image 之前手动应用约束。

更多信息请参见:Auto-Layout: Get UIImageView height to calculate cell height correctly

【讨论】:

以上是关于UITableView 和自动高度的主要内容,如果未能解决你的问题,请参考以下文章

iOS8+ UITableView自动计算cell高度并缓存

如何为 UITableView 设置自动高度?

如何使用动态单元格高度和自动布局以编程方式创建一个非常基本的 UITableView?

iOS:在自动布局下更改 UITableView 高度

iOS8 UITableView 和 Cell - 自动布局高度 - 触摸和执行 segue 时的移位/垂直偏移错误

Swift UITableView 自动高度