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

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

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

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

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

【问题讨论】:

标签: ios xcode swift uitableview


【解决方案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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-17
    • 2017-08-09
    • 2014-01-25
    • 2018-08-09
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多