滚动/静态UITableView页脚

时间:2017-01-02 16:22:27

标签: ios swift uitableview

我希望UITableViewCell在页脚和表页脚之间混合使用行为:

如果表格未填满(意味着没有足够的单元格填满整个屏幕),则单元格应保留在表格的底部,锚定在屏幕边缘,在其自身与上方之间留出空白。 (表现得像表页脚)

如果表格已填满,则单元格应开始滚动并始终保留在表格的底部。 (表现得像一个页脚)

我想尽可能避免实现这一点的奇怪技巧,是否有一个优雅的解决方案可以让我这样做?

1 个答案:

答案 0 :(得分:1)

在tableView顶部使您的页脚成为一个单独的视图,并在tableView的底部有一个约束,并将出口设置为此约束。使用tableView.visible单元格覆盖scrollViewDidScroll并获取最后一个可见单元格的底部y坐标,并在其框架上调用CGRect.maxy(如果没有最后一个单元格,则约束常量为tableView.frame.size.height - footerView.frames。 size.height)。获取tableView.frame.maxY和最后一个可见单元格的maxY之间的差异。如果单元格超过tableView.frame.maxY - footerView.frames.size.height,则将约束常量设置为0,否则将其设置为差值。

这具有将页脚视图固定到最后一个可见单元格的效果,除非这会强制页脚超出表格的底部,在这种情况下,您只需将其固定到表格的底部。如果没有最后一个单元格,则将页脚固定在表格的顶部。