我的目标基本上是创建一个启用了分页的tableView,它使用各个部分来确定页面数量,以及您所依赖的页面。
示例:3个部分 1节:3个细胞 第2部分:14个单元格 - 滚动到该部分的最底部作为普通tableView,当它击中底部时,如果用户继续滑动,则转到下一页。 第3部分:8个单元格 - 滚动到底部并停止。
因此,第一页将有3个单元格,然后是空白区域,如果您开始向上滚动,则会出现下一个部分,然后该部分标题将对齐到顶部,您将更改页面
第二页有多个单元格可以同时放在单个屏幕上,用户滚动到这些单元格的底部,一旦到达底部,可以继续滚动显示第三个部分标题,然后是标题将捕捉到顶部等
我知道如何创建一个页面tableView,它是使用部分而不是查看高度分页的tableview,我不知道是否可能
答案 0 :(得分:0)
我必须做一些类似于你设计的事情。
我需要第一部分占用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
对于在向下滚动时重新启用分页非常重要。
另请注意,当用户在tableNode.view.pagingEnabled
功能中向上滚动时,我只设置scrollViewDidScroll
。
希望这可以帮助任何人在将来寻找这个,因为我希望你@YichenBman你现在已经提出了解决方案。