我有一个内置UITableView的UIScrollView。我已禁用表格视图上的滚动。我使用以下代码将UITableView的高度保持在其内容的高度。
override func updateViewConstraints() {
self.editView!.editTblHeightCnst.constant = self.editView!.editTbl.contentSize.height + self.editView!.editTbl.contentInset.top + self.editView!.editTbl.contentInset.bottom + self.editView!.editTbl.contentOffset.y
super.updateViewConstraints()
}
然而,我到达那里的内容太小了。如果我在内容大小上添加一些或更少的内容,它就可以了。为什么我的内容大小不是我期望的,我该如何解决这个问题?
答案 0 :(得分:3)
我找到了一个解决方案,在完成所有工作之前写下来:
tableView.estimatedRowHeight = 0;
在iOS 11中,表格视图默认使用估计的高度。这意味着 contentSize最初是估计值。如果你需要 要使用contentSize,您需要禁用估计的高度 将3个估计高度属性设置为零: tableView.estimatedRowHeight = 0 tableView.estimatedSectionHeaderHeight = 0 tableView.estimatedSectionFooterHeight = 0