表格视图的高度并未随着单元格的数量而完全增加

时间:2019-06-06 07:52:29

标签: ios swift tableview

我在xib中有一个表格视图,就像这样...

enter image description here

现在我要实现的是根据我在表格视图中添加的单元格数量来增加表格视图的高度。

为此,这是我添加的代码。

viewDidLoad中。

self.tableview.addObserver(self, forKeyPath: "contentSize", options: [], context: nil)

然后添加此功能...

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {

    var frame = self.tableview.frame
    frame.size = self.tableview.contentSize
    self.tableview.frame = frame
  }

此外,我的表格视图中有5个单元格。

现在,如果我运行该应用程序,我将得到像这样的tableviewcells。

顶部:-

enter image description here

以及底部:

enter image description here

这里的顶部与上面的一些标签内容重叠,最后一个单元格也没有在底部留出足够的空间,并且被剪掉了...

我该如何解决..?

编辑1:分配tableviewheight约束

enter image description here

1 个答案:

答案 0 :(得分:0)

outlet tableView's创建一个height constraint

@IBOutlet weak var tableHeightConstraint: NSLayoutConstraint!

tableView's中用contentSize observeValueForKeyPath:ofObject:change:context:进行更新

func updateTableiewConstraints() {
    let height = self.tableView.contentSize.height
    self.tableHeightConstraint.constant = height
}

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    self.updateTableiewConstraints()
}

Constraints for tableView

enter image description here