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

时间:2014-04-30 03:02:54

标签: ios uicollectionview

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

一切都在桃花心木水平滚动的地方。这种滚动的缺点是我可以滚动并到达我看到两个单元格的一半有间隙的位置。

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

希望这是有道理的。

如果有人尝试过或者可以帮助我实现相同目的,请告诉我。感谢。

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

点击此处查看我的答案:ScrollView or CollectionView?

听起来您启用了分页功能,但页面大小与单元格大小加上单元格左侧和右侧的插图不匹配。

答案 2 :(得分:1)

确保单元格之间的填充也设置为零。启用分页将在视图边界的倍数处停止。

    // Set up flow layout
            var flowLayout:UICollectionViewFlowLayout = UICollectionViewFlowLayout();
            flowLayout.minimumInteritemSpacing = 0
            flowLayout.minimumLineSpacing = 0

            collectionView = UICollectionView(frame: view.bounds, collectionViewLayout: flowLayout)

            collectionView!.pagingEnabled = true

答案 3 :(得分:-1)

斯威夫特 5:

collectionView.isPagingEnabled = true