如何为UITableView设置自动高度?

时间:2015-12-01 06:31:33

标签: ios xcode swift uitableview

我已将TableView添加到控制器并设置下一个:

enter image description here

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

那么,即使我有10行,我怎么能做到这一点,我的UITableView会完全显示,高度会自动改变?

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

2 个答案:

答案 0 :(得分:0)

您可以添加UIScrollView。最重要的是添加UITableView scrollingEnabled = false

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

答案 1 :(得分:0)

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

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

- tableView:heightForRowAtIndexPath:

- tableView:estimatedHeightForRowAtIndexPath:

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

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

-intrinsicContenSize

对于你正在做的事情,这可能有点过分了。