如何在只有 1 行时调整 UITableView 的大小

How To have UITableView Resize when only 1 row

我有一个带边框的 UITableView,它有一个带有多行标签的原型单元格。 table 可能只有一行,具体取决于数据。细胞本身的一切似乎都工作正常。

挑战在于,当没有足够的数据行来填充 table 时,我的边界远远超出了数据。我在 Table View 上确实有一个底部约束,这我知道为什么它比单行大。

我想不通的是如何更改对 table 视图的限制,使其仅与显示的数据一样大。

下面是我得到的屏幕截图。我想要的是边框仅围绕显示的数据行。当然,如果 table 有多行使其大于其所在页面底部的可用 space,我确实需要它滚动等。任何建议将不胜感激。

是的,我已经通过打开行分隔符并验证超过 1 显示来确认单元格没有占据整个宽度。我还确认 table 视图中的部分数设置为 1 并且 numberOfRowsInSection 函数返回值 1

对于你的情况,我只能想到3种解决方案。第一个是手动预先计算 table 视图的大小,例如 Min(yourAvailableHeight, heightOfRow*numberOfRows + topMargin + bottomMargin)。或者您可以删除底部边框本身,只将其放在最后一个单元格中。

或者您可以使用

CGRect frame = self.tableView.frame;
frame.size.height = self.tableView.contentSize.height;
self.tableView.frame = frame;