在 UITableView 中的部分之间隐藏部分/空间
Posted
技术标签:
【中文标题】在 UITableView 中的部分之间隐藏部分/空间【英文标题】:Hide a section / space between sections in UITableView 【发布时间】:2018-10-18 15:39:08 【问题描述】:在某些情况下,我想隐藏UITableView
的一部分。
我已经通过返回 0
行作为部分并返回 nil
作为部分标题来解决这个问题。
之后该部分为空/不可见,但其余部分之间的间隙比平时更大。
我尝试将heightForHeader
和heightForFooter
设置为0.0
,但空间仍然更大。
如何避免这些部分之间的额外空间?
【问题讨论】:
【参考方案1】:我在this thread找到了解决方案。
长话短说:您必须在 viewDidLoad 中设置 self.tableView.sectionHeaderHeight = 0.0
和 self.tableView.sectionFooterHeight = 0.0
。
无论出于何种原因,heightForHeader
和 heightForFooter
委托方法都会被忽略。
【讨论】:
【参考方案2】:为节返回 0 行,为节标题返回 nil 并不意味着该节是隐藏的。这只是意味着该部分的数据被清除了,这就是为什么仍然出现相当于该部分大小的区域的原因。
解决方案:
您应该在 numberOfSections 和 cellForRowAt 函数中放入允许或禁止该部分(例如使用 Bool 变量)的条件,当您想要隐藏它时,只需将 Bool 设置为 false 并重新加载 UITableView 的数据。
【讨论】:
在我看来,为了隐藏单个部分而重新加载整个 TableView 并不是一个好方法。使用我当前的实现,我可以明确地使用reloadSections
来刷新受影响的部分,并同时平滑地对其进行动画处理。
你说得对,我同意你的看法。我认为下面的链接可以帮助你。 ***.com/questions/1061208/…
谢谢@Mina Hanna——你的回答让我走向了正确的方向!以上是关于在 UITableView 中的部分之间隐藏部分/空间的主要内容,如果未能解决你的问题,请参考以下文章
Swift 中的 UITableView 无法识别 UINavigationBar,填充已关闭,部分 tableview 被隐藏