如何为 UITableView 设置自动高度?

Posted

技术标签:

【中文标题】如何为 UITableView 设置自动高度?【英文标题】:How to set auto height for UITableView? 【发布时间】:2015-12-01 06:31:33 【问题描述】:

我已将 TableView 添加到我的 Controller 并设置下一个:

我的身高优先级等于250(低)。

那么,我怎样才能让即使我有 10 行,我的 UITableView 也会完全显示并且高度会自动改变?

现在我的 UITableView 中有一个滚动条。如何解决?

【问题讨论】:

检查这个答案***.com/questions/13001944/… 【参考方案1】:

您可以添加UIScrollView。在它上面添加一个UITableViewscrollingEnabled = false

知道tableView的单元格个数和每一行的高度,就可以计算出UITableView的总高度,并相应地设置scrollView的contentSize

【讨论】:

这不是我想要的。我不想要滚动视图。我只想自动调整视图大小 嗨@OrkhanAlizade 您要调整哪个视图的大小以及其中的控件是什么?【参考方案2】:

如果您试图保持表格视图的高度不变,无论您有 1 个单元格还是 10 个单元格,那么您需要使您的单元格高度是动态的,并根据您拥有的单元格数量(高度= available_height / numberOfCells)。

通常单元格高度是固定的,或者像消息应用程序中的单元格一样是动态的,这是通过操纵来完成的:

- tableView:heightForRowAtIndexPath:

- tableView:estimatedHeightForRowAtIndexPath:

如果你不是试图让tableView保持一个恒定的高度,那么你仍然应该使用上面的方法让单元格占据适当的空间,让tableView不需要滚动,然后你将不得不重新调整 tableView 的大小以将底部向上拉。

据我所知,AutoLayout 不会自动为您执行此操作。有一些技巧可以让 AutoLayout 更加了解对象的大小,例如添加

-intrinsicContenSize

这对你正在做的事情来说可能有点矫枉过正。

【讨论】:

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

如何为 Kendo UI 自动完成控件设置宽度

如何为 UWP 调整 Telerik UI 的 listviewitem 容器的高度

内容的 UITableView 背景图像

如何为 UITableView tableHeaderView 设置比 UITableView 宽度更宽的宽度?

如何为 UITableView 设置分隔符样式 [重复]

弹出键盘时如何为 UITableView 设置动画?