如果内容大小>实际高度然后固定高度,如果内容大小<实际高度然后动态的tableview swift 3?

时间:2017-07-04 04:51:29

标签: ios xcode uitableview swift3

在storyBoard中,我在视图中为tableview提供了top,bottom,leading和trailing约束。 我已将tableview高度指定为contentSize.height。根据tableview高度,没有在tableview 3或4等中可见的单元格(取决于内容大小,它可能会有所不同)。但问题是桌面视图高度根据内容大小而增加。 如果没有更多的单元格,那么它应该将表格视图的实际高度与内容大小进行比较,如果contentSize小于tableview实际高度,那么只有它应该改变tableview的高度。

if tableViewActualHeight > contentSize {
// then only change tableview height
    tableViewActualHeight = contentSize
}

我们怎样才能得到&amp;放置该代码的位置?

2 个答案:

答案 0 :(得分:1)

好的,这是

的想法

enter image description here

首先通过yourTableView.frame.size.height获取tableview的高度。 现在计算tableView单元格的高度。 让我们假设这些案例。

假设单元格高度为50,如果高度为200则为tableview

第一个案例

如果您有2个单元格,则总单元格高度为100.现在检查100 <200 tableView的bottomConstraint将是200 - 100,即100.所以这里tableView高度变为100

第二种情况

如果您有5个细胞,则总细胞高度为250.现在检查250 <200 bottomConstraint将是ZERO

请告诉我它是否有助于您理解

答案 1 :(得分:0)

您需要再为表格视图设置一个约束 - Fixed height

现在接受(或连接)该约束的出口,然后根据您的条件设置该出口的constant。如果您的内容大小较大,那么您的tableview不会做任何其他设置高度约束的常量作为内容大小,如

  heightConstraint.constant = 20  // Your contentsize instead of 20

您需要在tableview成功重新加载后执行此操作,否则它将无法提供正确的内容大小。

如果您的单元格或行的高度是固定的,那么您可以计算自己的内容高度。您可以将行高乘以行数(数组计数)!