滚动/静态 UITableView 页脚



我想要一个在节页脚和表格页脚之间混合行为的UITableViewCell:

如果表格未填充(意味着没有足够的单元格来填充整个屏幕),则单元格应保留在表格底部,锚定到屏幕边缘,在其自身和上方之间留出空白区域。(行为类似于表页脚)

如果表格已填满,则单元格应开始滚动并始终保留在表格底部。(行为类似于节页脚)

我想尽可能避免奇怪的

技巧来实现这一目标,有没有一个优雅的解决方案可以让我做到这一点?

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

这会

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

最新更新