【发布时间】:2016-06-01 15:39:39
【问题描述】:
我在情节提要中定义了一个 UITableView,其中一个 UITableViewCell 包含另一个 UITableView 作为其内容的一部分,并且在情节提要中全部定义了一个 UITableViewCell。
两个内容视图都完全由自动布局指定。然而,嵌套表的框架高度始终为零。如果我打开嵌套表的高度,您可以看到所有内容,所以我知道它在那里;但是,如果没有硬编码的高度,它始终为 0。我以前做过,但无论出于何种原因,我都遗漏了一些东西。
顶级表工作正常。嵌套表正确加载其单元格。我已经完成了
removalTable.estimatedRowHeight = 127
removalTable.rowHeight = UITableViewAutomaticDimension
removalTable.setNeedsLayout()
removalTable.reloadData()
我对 SO 并不是很陌生,但由于某种原因,我的 openID 无法正常工作。
【问题讨论】:
-
当我嵌套了表视图时,我在子表视图上调用
layoutIfNeeded而不是reloadData。这会立即布置孩子,因此在布局父母时,父母知道其孩子的高度(我很确定它是如何工作的)。因此,假设您的约束都是正确的,调用removalTable.layoutIfNeeded()可能会有所帮助。 -
我试过了,但没有任何影响。最后我选择了嵌套表格视图以外的东西。
-
奇怪的是,它正确设置了滚动视图高度,但没有设置表格框架本身。
-
找到不同的解决方案可能是个好主意。很高兴你能解决一些问题。虽然嵌套的 tableviews 可以工作,但它们可能非常挑剔。过去与他们斗争过,我现在尽量远离他们。
标签: ios swift uitableview autolayout