在 UITableView 的部分之间隐藏一个部分/space

Hide a section / space between sections in UITableView

在某些情况下,我想隐藏 UITableView.

的一部分

我已经通过为该部分返回 0 行和为该部分标题返回 nil 来解决这个问题。

之后该部分为空/不可见,但其余部分之间的差距比平时更大。

我尝试将 heightForHeaderheightForFooter 设置为 0.0,但 space 仍然更大。

如何避免这些部分之间的额外 space?

为该部分返回 0 行,为该部分标题返回 nil 并不意味着该部分已隐藏。只是说明该段的数据被清除了,所以还是会出现相当于该段大小的区域。

解决方案:

您应该在允许或禁止该部分的 numberOfSections 和 cellForRowAt 函数中放置条件(例如使用 Bool 变量),当您想要隐藏它时只需将 Bool 设置为 false 并重新加载 UITableView 的数据即可。

我在 this thread 中找到了解决方案。

长话短说:您必须设置 self.tableView.sectionHeaderHeight = 0.0 以及 self.tableView.sectionFooterHeight = 0.0 即在 viewDidLoad 中。

无论出于何种原因,heightForHeaderheightForFooter 委托方法都会被忽略。