UITableView页脚,停止浮动内容


70

我想让UITableView页脚停止浮动在我的内容上,这是默认活动。我希望我的页脚是..很好..页脚。总是将最后一个视图显示在表视图的末尾。:)

实际上也与标题相同。

有什么简单的方法可以使它在滚动时不能悬浮在表格视图上方?

谢谢大家,我在其他地方找不到答案。

Answers:


121

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

但是,如果您使用创建页脚viewForFooterInSection,则该页脚将跟随您的视图并停留在屏幕底部。

不知道为什么我找不到更快的答案。对不起,所有:)


61
那是两个不同的东西:tableFooterView是整个表的页脚。viewForFooterInSection是给定部分的页脚
user102008

2
如果我在一个表格视图中有多个部分怎么办?
消极的

18
其实是相反的。若要使页脚浮动在桌子上方,则需要使用viewForFooterInSection,否则,如果将页脚粘在底部并与桌子一起滚动,则需要使用self.tableView.tableFooterView = footerView
Fred Collins

1
页脚的奇怪行为:我分配了一个小的imageView,它的框架确实使人有些
不适

1
如果要防止浮动但您有多个部分,并且在第一部分中显示页脚,该怎么办?
mikrobi

33
- (id)init {
    self = [self initWithStyle:UITableViewStyleGrouped]; //Default is UITableViewStylePlain
    return self;
}

8
也可以使用StoryBoard,谢谢+1
Ahsan Ebrahim

31

您有两种类型的页脚:一种是部分页脚,另一种是tableview页脚

节的页脚出现在每个节的下方。在另一边,实现代码如下页脚在刚刚出现一次的tableview中结束

没有一键式禁用部分页脚浮动的方式。

如果您希望“页脚”始终显示为该节的最后一个单元格,并且确实固定在表格视图的底部,则需要在该节中添加一个额外的单元格,并始终将其视为该节的最后一个单元格。

如果表视图中只有1个部分,则可以使用表视图页脚作为页脚。


1
根据该问题的其他答案,实际上可以通过在代码中或在XIB / Storyboard中将表视图样式设置为UITableView.Style.grouped来禁用“ 1-click”中节脚的浮动。
导入


4

如果您将单元格划分为多个部分并正在使用该功能:

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

设置页脚,那么在IB中,您还可以将UITableView样式设置为Grouped是另一种可能的解决方案!


0

如果我的问题正确,您基本上是想将页脚/页眉固定到位并滚动其他所有内容?如果是这样,您可以只将页眉和页脚作为与tableview分开的视图,它们放在视图层次结构中tableview的上方,因此它们覆盖了tableview的内容。

如果您想让它们通过tableview跳动(在内容上方或下方滚动时),则需要跟踪tableview的方法(tableview是scrollview的子类,因此可以使用)- (void)scrollViewDidScroll:并计算页脚或标头在那里。

希望您能得到我的答案,我已经做了类似的事情并且奏效了(我想在表视图顶部添加“发布更新”类的东西)


恰恰相反...我希望页脚/页眉在各个方面都基本上充当tableview的第一个和最后一个单元格:)...如果您的回答可以帮助您说实话,我有点迷惑。
杰森(Jason)

1
那是什么问题 只需将它们作为第一个和最后一个单元格即可。或者,您可以简单地将它们作为headerView / footerView。我想念的是什么?:P
Henri Normak

好吧,问题是我需要它们具有特定的高度,与其余单元格不同,并且我不想承担运行cellheightforrow方法的负担(文档在大表中指出性能会下降)- -将它们作为页眉/页脚视图吗?我确实使用viewForFooterInSection将它们作为页眉/页脚视图...但是在滚动表时它粘在屏幕的底部;(
Jason

1
哇..这很容易..我只需要设置页脚视图,而不是部分页脚的视图...哇
Jason

很高兴能解决问题,这就是我在footerView / headerView中所考虑的,这是tableview的两个属性。
亨利·诺马克

0

我有一个类似的问题。我只使用页脚来指示表格底部的单元格数。但是它并没有像我所期望的那样随着表cels滚动(它一直在表的顶部一直可见,直到我到达底部反弹为止)。

解决这个问题的我的方法是创建2个部分,一个包含表单元格,另一个包含标头的空BUT。此标题将显示计数器,并且将按照我想要的方式运行(始终保持在表格底部,而不是覆盖单元格)。

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

希望这可以帮助


0

#pragma mark-有两种选择-

  1. 使用UITableView委托

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

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

    效果:附加在最后一个单元格的底部

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;
//  }

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.