在 iOS 中滚动时实施 "sticky" 部分 headers

Implement "sticky" section headers when scrolling in iOS

此实现类似于普通的 UITableView,但有一个警告在我看来大大改变了工作的复杂性。要求是所有部分 headers 将始终可见,无论 table 有多长。

解释确切的 UX 有点困难,但如果您按照下面的 link 进行操作,则有一个交互式示例正是我想在本机 iOS 中完成的内容:

http://slinky.iclanzan.com/

据我了解,使用普通的 UITableView 不足以满足这种情况。除了使用多个 TableView、ScrollView、and/or CollectionView 的混搭之外,我想知道是否有人知道一些已经执行此实现的现有库?

或者,如果有人对如何使用自定义代码完成此操作有任何高级建议,我们也将不胜感激(不希望有人为我写出这一切,一个想法就足够了)。

在与一些队友合作进行 POC 后找到了解决方案。我将在较高层次上解释实现。

我们知道 tableview 的 header 和页脚在我们滚动时将保持不变。因为我们希望我们的部分 headers 到 "stick" 到表视图的底部和顶部,我们通过动态添加任何部分 header 视图来模拟这一点,这些视图本来会隐藏到表视图自己的 header 或页脚。

我们通过维护部分 header 视图的数组,并在需要更改表视图的 header 和页脚时在 layoutSubviews 中进行计算来做到这一点。