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

Posted

技术标签:

【中文标题】将页脚保持在 UITableView 超级视图的底部,直到 tableViewStarts 滚动【英文标题】:keep footer at the bottom of UITableView superview, until tableViewStarts to scroll 【发布时间】:2020-01-30 01:09:40 【问题描述】:

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

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

我尝试将其添加到 tableview 页脚,并在插入单元格数量时更改其大小(保持实际页脚停靠),但这会导致 table view 非常有弹性(而不是仅仅插入向下)。

【问题讨论】:

【参考方案1】:

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

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

在scrollViewDidScroll 中,获取scrollView.contentOffset.y 并为页脚约束设置动画以将其推离屏幕。您需要为您正在制作动画的任何约束常数想出一个小公式。

【讨论】:

我认为您可能正在做某事。我会试试这个,看看会发生什么。谢谢你【参考方案2】:

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

希望对你有帮助。

【讨论】:

以上是关于将页脚保持在 UITableView 超级视图的底部,直到 tableViewStarts 滚动的主要内容,如果未能解决你的问题,请参考以下文章

如何将页脚视图添加到 SwiftUI 中的列表?

即使使用动态高度网站,如何将页脚保持在底部

如何将页脚保持在底部,直到内容充满身体高度? [复制]

如何将页脚保持在屏幕底部[重复]

如何在 UITableView swift 3 中使用动画在底部滚动

UITableView tableFooterView 显示在 UITableView 的顶部 - 错误