UICollectionView 水平分页与 UIPageController

UICollectionView horizontal paging with UIPageController

对集合视图分页不是很有经验,所以我需要一点帮助。 我使用 UIPageController 将 6 个单元格分成 3 个页面。 你会建议在里面有带有集合视图和页面控制器的容器视图吗?不确定这是否可行。 它应该是这样的:

collection view design

提前致谢

如果您觉得将两个块(带破折号的圆角正方形)分组可能会改变设计,您宁愿使用 UIPageController。因为逐页更改布局会更容易。

如果您觉得块将始终具有此大小但它们的顺序可能会改变或某些可能会消失,请使用 UICollectionView。您必须一个接一个地设计积木,但您可以更灵活地安排它们。

为什么要使用页面视图控制器?就是为了显示和管理多个UIViewControllers.

您最好使用 UICollectionView 并创建自定义 UICollectionViewLayout 子类(实际上,为此您只需要子类 UICollectionViewFlowLayout)。

然后你可以实现方法- targetContentOffsetForProposedContentOffset:来实现你的内容的分页

有多个关于实现此方法的 Whosebug 问题。他们中的任何一个都应该能够帮助你。

希望有用。

编辑

我提到的方法接受内容偏移点。这是用户在滑动后松开屏幕后内容会减慢并停止滚动的地方。

此方法将采用该目标内容偏移量并找到最接近它的内容偏移量以正确显示整页(即,以便您在屏幕中正确显示两个单元格)。

然后滚动视图将改变动画并减速,以便在该点停止。