将页脚保持在 UITableView 超级视图的底部,直到 tableViewStarts 滚动

keep footer at the bottom of UITableView superview, until tableViewStarts to scroll

我有一个屏幕,使用 viewcontroller 和 tableView 进行聊天 viewController 是必不可少的。 此屏幕的设计要求是保持页脚停靠在视图控制器的末尾,直到 table 视图需要开始滚动(在最后一个单元格将被推送到 tableView 的位置+ 页脚向下。 然后开始滚动单元格的最后一个元素。

如何实现?我一直挠头,反对。由于该应用程序似乎到处都遵循这种设计,但在某些屏幕上,在用户交互开始时不会有任何内容,例如我目前停留在的聊天屏幕。

我试图将它添加到 table 视图页脚,并随着插入的单元格数量改变它的大小(保持真正的页脚停靠),但它导致了 table视图非常有弹性(而不是仅仅向下插入)。

UITableView 继承自 UIScrollView,因此您可以覆盖 scrollViewDidScroll 以获取实时 x 和 y 平移。注意:这个函数会被调用很多次

我自己从未做过消失 header/footer,但我可能会为页脚使用常规视图,并使用 y 转换为其中一个约束设置动画。

在 scrollViewDidScroll 中,采用 scrollView.contentOffset.y 并设置页脚约束的动画以将其推离屏幕。您需要为要设置动画的约束常量想出一个小公式。

在 viewForFooterInSection 方法中设计粘性页脚,并在 heightForFooterInSection 委托方法中指定高度,这将自动让您滚动 tableview 单元格,并将移动到 tableview 的末尾。

希望对您有所帮助。