Swift UITableView自动高度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift UITableView自动高度相关的知识,希望对你有一定的参考价值。
我有一个设计,其中UITableView在UIScrollView中包含其他内容,内容与表数据一起滚动。这意味着,该表已禁用滚动并且已拉伸到完整大小。
我正在使用autolayout并且表具有高度约束,设置为某个默认值。
然后我覆盖了viewWillLayoutSubviews方法:
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
if (self.itemTableView.contentSize.height > 0) {
self.itemTableViewHeightConstraint.constant = self.itemTableView.contentSize.height
}
}
有了这个方法,当我从REST加载数据后调用self.itemTableView.reloadData()时,高度约束被设置为表内容高度,这很好。
这曾经在许多项目中为我工作,但由于某种原因,它不能用最新的一个,用swift 4编写。有什么改变了吗?为什么tableView reloadData()方法不调用viewWillLayoutSubviews()?
答案
问题是tableView(_ tableView:UITableView,cellForRowAt indexPath:IndexPath)在返回行之前没有调用self.view.setNeedsLayout()。
以上是关于Swift UITableView自动高度的主要内容,如果未能解决你的问题,请参考以下文章
swift 使用“自动布局”将UITableView的高度设置为其内容的高度
uitableviewcell中的swift uitableview,自动布局始终高度为0
如何在 uilabel 中使用多行并根据 Swift 中的标签高度自动扩展 uitableview 行高?