滚动到UICollectionView中的下一个单元格

我有一个容器视图中的UICollectionView。 它的大小使我一次只能看到一个单元格。 我已禁用垂直滚动,所以只有水平滚动发生。

一切工作只是水晶横向滚动单元格。 这个滚动的缺点是我可以滚动,并获得一个位置,我看到两个单元格之间的差距的一半的一部分。

我想要实现的是一次只显示一个单元格,而不显示两个半单元格。 所以滚动应该把我带到下一个单元格。

希望这是有道理的。

请让我知道,如果有人已经尝试或可以帮助我达到相同的。 谢谢。

您可以通过设置pagingEnabled = YES一次滚动一个单元格。 或者对于正常的滚动,您可以通过覆盖targetContentOffsetForProposedContentOffset:withScrollingVelocity: UICollectionViewLayout来调整减速结束的UICollectionViewLayout 。 使用后面的方法时,通常会执行以下操作:

  1. 确定距离SuggestedContentOffset最近的索引path。 如果您的单元格之间没有间隙,则可以使用[UICollectionView indexPathForItemAtPoint:] 。 否则,您可能需要以某种方式检查布局,以确定要滚动到的索引path。
  2. 通过获取该索引path的布局属性来确定要滚动的索引path的框架
  3. 确定将在给定帧的位置上放置的内容偏移量。

看看我的答案在这里: ScrollView或CollectionView?

这听起来像你有分页启用,但页面大小不匹配你的单元格大小加上单元格的左侧和右侧的插图。

确保单元格之间的填充也设置为零。 启用分页function将停止多个视图边界。

  // Set up flow layout var flowLayout:UICollectionViewFlowLayout = UICollectionViewFlowLayout(); flowLayout.minimumInteritemSpacing = 0 flowLayout.minimumLineSpacing = 0 collectionView = UICollectionView(frame: view.bounds, collectionViewLayout: flowLayout) collectionView!.pagingEnabled = true