使用UITableView节进行分页



我的目标基本上是创建一个启用分页的tableView,它使用部分来确定页面数量以及您所在的页面。

示例:3个部分1节:3个单元格第二部分:14个单元格-像普通表格一样滚动到该部分的最底部。当它到达底部时,如果用户继续滑动,则会转到下一页。第三节:8个单元格-滚动到底部并停止。

因此,第一页将有3个单元格,然后是空白,如果你开始向上滚动,则会出现下一节,然后该节的标题会跳到顶部,你将更改页面

第二页有许多单元格,一次无法容纳在一个屏幕上,用户滚动到这些单元格的底部,一旦到达底部,可以继续滚动以显示第三部分的标题,然后该标题将捕捉到顶部,等等

我知道如何创建页面tableView,它是使用部分而不是视图高度来分页tableView,我不知道这是可能的

我不得不做一些与您的设计类似的事情。

我需要第一部分占据entre屏幕,第二部分是无限滚动,向下滚动时在第1部分和第2部分之间进行分页。此外,当向上滚动时,我希望滚动在顶部之前停止。

我知道这与你的情况略有不同,但你可以很容易地计算出每个部分的高度,并将其应用于我的设计。

我是这样做的:

func scrollViewDidScroll(scrollView: UIScrollView) {
let offsetY = scrollView.contentOffset.y
if (lastContentOffset > offsetY) {
tableNode.view.pagingEnabled = offsetY < view.frame.height
}
lastContentOffset = offsetY
}

func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
let offsetY = scrollView.contentOffset.y
tableNode.view.pagingEnabled = offsetY < view.frame.height
}

请注意,scrollViewDidEndDecelerating对于向下滚动时重新启用分页非常重要。

还要注意,当用户在scrollViewDidScroll功能中向上滚动时,我仅设置tableNode.view.pagingEnabled

希望这能帮助任何在未来寻找这一点的人,就像我希望你@YichenBman一样,你现在已经想出了一个解决方案。

最新更新