我在容器视图中有一个 UICollectionView。它的大小使得我一次只能看到一个单元格。我已禁用垂直滚动,因此仅发生水平滚动。
当我在单元格之间水平滚动时,一切都很顺利。这种滚动的缺点是我可以滚动并到达一个位置,在该位置我可以看到两个单元格的一半,中间有间隙。
我想要实现的是一次仅显示一个电池,并且从不显示两个半电池。因此,滚动应该一次将我带到下一个单元格。
希望这是有道理的。
如果有人尝试过或可以帮助我实现同样的目标,请告诉我。谢谢。
您可以通过设置一次滚动一个单元格pagingEnabled = YES
。或者对于常规滚动,您可以通过覆盖来调整减速结束的位置targetContentOffsetForProposedContentOffset:withScrollingVelocity:
of UICollectionViewLayout
。使用后一种方法时,您通常会执行以下操作:
- 确定最近的索引路径
proposedContentOffset
。如果单元格之间没有间隙,您可以使用[UICollectionView indexPathForItemAtPoint:]
。否则,您可能必须以某种方式检查布局以确定要滚动到哪个索引路径。
- 通过获取索引路径的布局属性来确定要滚动到的索引路径的框架
- 确定将给定帧定位在您想要的位置的内容偏移量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)