滚动到UICollectionView中的下一个单元格
我有一个容器视图中的UICollectionView。 它的大小使我一次只能看到一个单元格。 我已禁用垂直滚动,所以只有水平滚动发生。
一切工作只是水晶横向滚动单元格。 这个滚动的缺点是我可以滚动,并获得一个位置,我看到两个单元格之间的差距的一半的一部分。
我想要实现的是一次只显示一个单元格,而不显示两个半单元格。 所以滚动应该把我带到下一个单元格。
希望这是有道理的。
请让我知道,如果有人已经尝试或可以帮助我达到相同的。 谢谢。
您可以通过设置pagingEnabled = YES
一次滚动一个单元格。 或者对于正常的滚动,您可以通过覆盖targetContentOffsetForProposedContentOffset:withScrollingVelocity:
UICollectionViewLayout
来调整减速结束的UICollectionViewLayout
。 使用后面的方法时,通常会执行以下操作:
- 确定距离SuggestedContentOffset最近的索引path。 如果您的单元格之间没有间隙,则可以使用
[UICollectionView indexPathForItemAtPoint:]
。 否则,您可能需要以某种方式检查布局,以确定要滚动到的索引path。 - 通过获取该索引path的布局属性来确定要滚动的索引path的框架
- 确定将在给定帧的位置上放置的内容偏移量。
看看我的答案在这里: 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