我在xib中有一个表格视图,就像这样...
现在我要实现的是根据我在表格视图中添加的单元格数量来增加表格视图的高度。
为此,这是我添加的代码。
在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。
顶部:-
以及底部:
这里的顶部与上面的一些标签内容重叠,最后一个单元格也没有在底部留出足够的空间,并且被剪掉了...
我该如何解决..?
编辑1:分配tableviewheight约束
答案 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
: