UITableView 页脚,停止在内容上浮动

I would like to make my UITableView Footer stop floating over my content, as is the default activity. I want my footer to be.. well.. a footer. Always the last view to be displayed at the end of my tableview. :)

实际上,标题也是一样的。

有没有什么简单的方法可以在滚动时禁止它浮动在表视图的顶部?

谢谢大家,我在别的地方找不到答案。

57466 次浏览

如果我的问题是正确的,你基本上想修复页脚/页眉在适当的地方和滚动所有其他?如果是这样,您可以将页眉和页脚作为独立于表视图的视图,它们位于视图层次结构中的表视图之上,因此它们覆盖了表视图的内容。

如果你想让它们和表格视图一起反弹(当滚动内容的上面或下面时) ,那么你需要跟踪表格视图的方法(表格视图是 scrollview 的一个子类,所以它可以工作) - (void)scrollViewDidScroll:并计算出页脚或者页眉的新位置。

我希望你得到我的答案,我已经做了类似的事情,它的工作(我希望“发布更新”之类的东西上的桌面视图)

好的,事实证明,如果你通过 blahblahtableView.tableFooterView = someview;设置页脚视图,页脚将不会随着表滚动。

但是,如果您创建您的页脚使用 viewForFooterInSection,它将遵循您的意见周围,并坚持在屏幕的底部。

不知道为什么我不能早点找到这个答案

我也遇到过类似的问题。我只使用了一个页脚来表示底部表格中的单元格数量。但是它并没有像我期望的那样使用表格单元格滚动(它一直在表格的顶部可见,直到我到达它反弹的底部)。

我的解决方案是创建两个部分,一个包含表格单元格,另一个空的带有标题。这个头将显示计数器,并将按照我想要的行为(始终保持在表的底部,而不是覆盖单元格)。

在底部添加一个虚拟单元格的推荐解决方案在我的情况下没有用,因为它将与表的有线边框相邻接,我不希望这样。

希望这个能帮上忙

self.YOUR_TABLE_VIEW.tableFooterView = YOUR_FOOTER_VIEW;

您有两种类型的页脚: 一个是 部分页脚和另一个是 桌面视图页脚桌面视图页脚

部分页脚出现在 每一节的下面。在另一边,桌面视图页脚桌面视图页脚只在 桌面景观的尽头出现一次。

没有单击方法可以禁用部分页脚的浮动。

如果你想要一个“页脚”,它总是作为它的部分的最后一个单元格出现,并且固定在表格视图的底部,你需要在你的部分添加一个额外的单元格,并且总是把它当作你的部分的最后一个单元格。

如果在表格视图中只有一个部分,那么可以使用表格视图页脚作为页脚。

# 杂注标记,有两个选择

  1. 使用 UITableView 委托

    效果: 表格视图中的浮动页脚

-(CGFloat)tableView:(UITableView *)tableView
heightForFooterInSection:(NSInteger)section{
return HEIGHT;
}
-(UIView*)tableView:(UITableView *)tableView
viewForFooterInSection:(NSInteger)section{
return FOOTERVIEW
}
  1. 使用表视图 setter

    附在最后一格的底部

theTableView.tableFooterView = YOURFOOTERVIEW


// Do not set this delegate
// or you would get a extra blank at the bottom of the table


//  -(CGFloat)tableView:(UITableView *)tableView
//  heightForFooterInSection:(NSInteger)section{
//    return HEIGHT;
//  }
- (id)init {
self = [self initWithStyle:UITableViewStyleGrouped]; //Default is UITableViewStylePlain
return self;
}

如果将单元格分成若干部分,并使用以下函数:

func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView?

设置您的页脚,然后在 IB 您也可以设置 UITableView 样式为 分组是另一种可能的解决方案!