UITableView的自动高度基于其内容

时间:2015-04-11 08:25:43

标签: ios uitableview swift

我在标准的ViewController中有一个UITableView,我喜欢它的高度与其内容一起拉伸 - 就像普通的网页一样。因此,例如,如果单行是50px并且存在两行,那么高度将不会超过这两行(100)。但是,如果有100行,那么tableview应该超出窗口的底部。

当桌面视图高于主窗口本身和用户滚动到列表底部时,我还希望在桌面视图底部和窗口之间保留10的边距。

接口构建器中是否有办法执行此操作,或者这是必须在代码中完成的事情吗?

以下是我希望它在列表中有三个项目时的样子;

enter image description here

当它到达列表的底部时,它有一个与窗口底部相关的约束;

enter image description here

2 个答案:

答案 0 :(得分:0)

如果您只是将表格扩展到视图的底部(使用10px边距)并使背景透明/灰色,我认为您想要的更容易获得。然后,将每行配置为具有白色背景。结果将作为截图。

是否有任何具体原因扩展表格框架?如果是的话,请解释......

答案 1 :(得分:0)

在搜索堆栈溢出找到解决方案之后,我也想做同样的事情。

如果要动态设置表视图高度,我认为最好的方法是在表视图完成加载后将表视图高度约束设置为等于其内容大小。我的意思是,

tableViewHeightConstraint.constant = tableView.contentSize.height

就这样做 -

  • 在UIScrollview中添加UITableView。这将为tableview提供无限滚动。
  • 禁用UITableView滚动。

  • 为表格视图添加高度约束。 (身高= 50像素)

  • 选择表格高度约束并将优先级设置为高(750) enter image description here

  • 创建高度约束的出口(Ctrl + Drag)。 enter image description here

  • 将高度约束设置为表格视图内容高度。

  • cellForRowAt中添加以下代码:

tableViewHeightConstraint.constant = tableview.contentSize.height

您需要重新加载表格数据的地方。

希望这会有所帮助。