使用UITableView部分

时间:2015-04-27 21:37:11

标签: ios objective-c uitableview swift

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

示例:3个部分 1节:3个细胞 第2部分:14个单元格 - 滚动到该部分的最底部作为普通tableView,当它击中底部时,如果用户继续滑动,则转到下一页。 第3部分:8个单元格 - 滚动到底部并停止。

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

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

我知道如何创建一个页面tableView,它是使用部分而不是查看高度分页的tableview,我不知道是否可能

1 个答案:

答案 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你现在已经提出了解决方案。