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

rkb*_*rkb 2 ios uicollectionview

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

一切都很好,我在单元格中水平滚动。这种滚动的缺点是我可以滚动并到达一个位置,在那里我看到两个单元格的一半,中间有间隙。

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

希望这是有道理的。

请让我知道是否有人尝试过或可以帮助我实现相同的目标。谢谢。

Tim*_*ose 6

您可以通过设置一次滚动一个单元格pagingEnabled = YES。或定期滚动,你可以调整在减速通过重写结束targetContentOffsetForProposedContentOffset:withScrollingVelocity:UICollectionViewLayout。使用后一种方法时,您通常会执行以下操作:

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