如何根据插入的行数设置表格视图的高度

Posted

技术标签:

【中文标题】如何根据插入的行数设置表格视图的高度【英文标题】:How to set height of tableview base on number of row its inserted 【发布时间】:2016-02-15 19:47:51 【问题描述】:

假设我得到了 3 行的 TableView。

当我从数据库中插入记录数据时,它会变成 4 行。

所以,我不想看到多余的行,因为我设置了 tableview 的高度。

如果我的 tableView 有 4 行,我的 tableView 高度只有 4 行,而不是一些额外的空白空间。

如果转为 3,则为 3 行的高度。

那么,如何根据插入的数字行来制作表格视图高度。

我不是在谈论自我调整大小的表格单元格。

我说的是根据插入的记录动态更改 tableView 的高度

【问题讨论】:

【参考方案1】:

您可以通过更改框架大小或布局约束来使您的视图控制器中的表格视图更高。

也就是说,如果您的表格是 3 行...您可以通过它的 frame.size.height 设置表格高度,或者您可以调整布局约束(也可以设置为 IBOutlet)以允许更多空间.

编辑:

以下是如何在代码中执行此操作(假设您使用的是 AutoLayout)

1) 首先将约束添加到表视图中

2)

将 IBOutlet 添加到您的视图控制器代码中。

3)

通过控制单击视图控制器对象并将鼠标移动到底部边缘布局来连接情节提要中的插座,如下所示:

4)

现在你有了一个布局插座,你可以根据你希望桌子的高度来调整底部边缘的常数。

在这里,当视图首次出现时,我正在这样做。您需要根据需要自定义此代码。

【讨论】:

请提供任何代码帮助?因为我真的是设置自定义高度的初学者。在 Storyboard tableView Constraints 中我有什么需要做的吗? 好的,我试试看。感谢您的帮助 感谢它确实有效。我可以在手风琴视图方面获得您的帮助吗:***.com/questions/35394191/…【参考方案2】:

Michael 解决方案就像一个魅力,但我想补充一点,您可以使用高度约束而不是底部和 numberOfRowsInSection 函数

所以你可以将行高乘以行数

我的表格行高是40,表头高度是40

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 

    var noOfRows = Int()

    if  case == 1 

          noOfRows = 5

     else if case == 2  

          noOfRows = 2

     

    heightOfTable.constant = CGFloat(noOfRows) * 40  + 40  // +40 for the header height
    return noOfRows

【讨论】:

以上是关于如何根据插入的行数设置表格视图的高度的主要内容,如果未能解决你的问题,请参考以下文章

QTable - 如何调整表格视图的大小?

动态表视图高度

根据 iOS SWIFT 高度更高的 UIImageView 或 UILabel 设置 UITableViewCell 高度

winform datagridview如何根据内容的行数自动改变高度

iPhone:如何通过 UILabel 内容高度更改行高

如何根据标签文本快速更改表格视图单元格高度?