【问题标题】:Hide a section / space between sections in UITableView在 UITableView 中的部分之间隐藏部分/空间
【发布时间】:2018-10-18 15:39:08
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: ios swift uitableview uikit uitableviewsectionheader


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      为节返回 0 行,为节标题返回 nil 并不意味着该节是隐藏的。这只是意味着该部分的数据被清除了,这就是为什么仍然出现相当于该部分大小的区域的原因。

      解决方案:

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

      【讨论】:

      • 在我看来,为了隐藏单个部分而重新加载整个 TableView 并不是一个好方法。使用我当前的实现,我可以明确地使用 reloadSections 来刷新受影响的部分,并同时平滑地对其进行动画处理。
      • 你说得对,我同意你的看法。我认为下面的链接可以帮助你。 stackoverflow.com/questions/1061208/…
      • 谢谢@Mina Hanna——你的回答让我走向了正确的方向!
      猜你喜欢
      • 2015-08-02
      • 2011-02-18
      • 2012-05-29
      • 1970-01-01
      • 2017-04-17
      • 2012-04-02
      • 1970-01-01
      • 2011-11-17
      • 2015-11-05
      相关资源
      最近更新 更多