在某些情况下,我想隐藏UITableView
的一部分。
我已经通过为该部分返回0
行和为该部分标题返回nil
来解决了这一问题。
此后,该部分为空/不可见,但是其余部分之间的间隙比平常大。
我尝试将heightForHeader
和heightForFooter
设置为0.0
,但是空间仍然很大。
如何避免各节之间的多余空间?
答案 0 :(得分:0)
为该节返回0行,为节标题返回nil并不意味着该节已隐藏。这仅意味着清除了该节的数据,这就是为什么仍显示与该节大小相等的区域的原因。
解决方案:
您应该将条件放在允许或禁止该部分的numberOfSections和cellForRowAt函数中(例如,使用Bool变量),当您要隐藏它时,只需将Bool设置为false并重新设置UITableView的reloadData。
答案 1 :(得分:0)
我在this thread中找到了解决方案。
长话短说:您必须同时设置self.tableView.sectionHeaderHeight = 0.0
和self.tableView.sectionFooterHeight = 0.0
,即在viewDidLoad中。
无论出于何种原因,heightForHeader
和heightForFooter
委托方法都会被忽略。