如果内容大小>实际高度然后是固定高度,如果内容大小<实际高度那么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的动态?的主要内容,如果未能解决你的问题,请参考以下文章
如果 <p> 和 <span> 标签都有 em 字体大小,那么实际高度是多少?