在UITableView中隐藏节/节之间的空间

时间:2018-10-18 15:39:08

标签: ios swift uitableview uikit uitableviewsectionheader

在某些情况下,我想隐藏UITableView的一部分

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

此后,该部分为空/不可见,但是其余部分之间的间隙比平常大。

enter image description here

我尝试将heightForHeaderheightForFooter设置为0.0,但是空间仍然很大。

如何避免各节之间的多余空间?

2 个答案:

答案 0 :(得分:0)

为该节返回0行,为节标题返回nil并不意味着该节已隐藏。这仅意味着清除了该节的数据,这就是为什么仍显示与该节大小相等的区域的原因。

解决方案:

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

答案 1 :(得分:0)

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

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

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