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

Posted

技术标签:

【中文标题】如果内容大小>实际高度然后是固定高度,如果内容大小<实际高度那么tableview swift 3的动态?【英文标题】:if content size > actual height then fixed height and if content size < actual height then dynamic of tableview swift 3? 【发布时间】:2017-07-04 04:51:29 【问题描述】:

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

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

我们如何获得该代码以及在哪里放置该代码?

【问题讨论】:

您的问题不清楚。你到底想达到什么目的? 如果没有更多单元格,我需要限制表格视图高度 更多是什么意思?多少 ?然后给表格视图固定高度! 是的,我给定了固定高度。但问题是我需要通过内容大小动态更改 tableview 高度。例如:实际表格视图高度 = 200,内容大小为 100,那么我需要将表格视图高度更改为 100(实际高度 > 内容大小),如果内容大小 > 200,则无需更改表格高度(实际高度 你想要固定高度还是动态?因为一开始你说要限制高度,然后你说要动态高度!! 【参考方案1】:

好的,这是一个想法

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

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

第一种情况

如果您有 2 个单元格,则单元格总高度为 100。现在检查 100

第二种情况

如果您有 5 个单元格,则单元格总高度为 250。现在检查 250

如果它对您有帮助或难以理解,请告诉我

【讨论】:

【参考方案2】:

您需要为您的 tableview 再设置一个约束 - Fixed height

现在获取(或连接)该约束的出口,然后根据您的条件设置该出口的constant。如果您的内容大小更大,那么您的 tableview 什么也不做,将您的高度约束的常量设置为内容大小,

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

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

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

【讨论】:

以上是关于如果内容大小>实际高度然后是固定高度,如果内容大小<实际高度那么tableview swift 3的动态?的主要内容,如果未能解决你的问题,请参考以下文章

如何滚动固定高度容器内的内容?

css设置div高度,但div的高度无法自适应内容

如果 <p> 和 <span> 标签都有 em 字体大小,那么实际高度是多少?

Vue | 窗口大小变化时改变主内容盒子高度,可应用于footer固定

灵活的 css 布局,包含容器内的页眉、页脚和滚动体

解决各种情况下的iframe高度自适应内容