繁体   English   中英

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

[英]Scrolling to next cell in UICollectionView

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

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

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

希望这是有道理的。

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

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

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

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

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

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

            collectionView!.pagingEnabled = true

在此处查看我的答案: ScrollView 或 CollectionView?

听起来您启用了分页,但页面大小与单元格大小以及单元格左右两侧的插图不匹配。

斯威夫特 5:

collectionView.isPagingEnabled = true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM