如何为 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
。在它上面添加一个UITableView
和scrollingEnabled = false
。
知道tableView的单元格个数和每一行的高度,就可以计算出UITableView
的总高度,并相应地设置scrollView的contentSize
。
【讨论】:
这不是我想要的。我不想要滚动视图。我只想自动调整视图大小 嗨@OrkhanAlizade 您要调整哪个视图的大小以及其中的控件是什么?【参考方案2】:如果您试图保持表格视图的高度不变,无论您有 1 个单元格还是 10 个单元格,那么您需要使您的单元格高度是动态的,并根据您拥有的单元格数量(高度= available_height / numberOfCells)。
通常单元格高度是固定的,或者像消息应用程序中的单元格一样是动态的,这是通过操纵来完成的:
- tableView:heightForRowAtIndexPath:
- tableView:estimatedHeightForRowAtIndexPath:
如果你不是试图让tableView保持一个恒定的高度,那么你仍然应该使用上面的方法让单元格占据适当的空间,让tableView不需要滚动,然后你将不得不重新调整 tableView 的大小以将底部向上拉。
据我所知,AutoLayout 不会自动为您执行此操作。有一些技巧可以让 AutoLayout 更加了解对象的大小,例如添加
-intrinsicContenSize
这对你正在做的事情来说可能有点矫枉过正。
【讨论】:
以上是关于如何为 UITableView 设置自动高度?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 UWP 调整 Telerik UI 的 listviewitem 容器的高度