swift - 在 UICollectionView 中的小单元格上使用左插图进行分页

标签 swift uicollectionview scroll-paging

我有一个 UICollectionView,其中包含从一个日期到另一个日期的日期。我已经用 IGListKit 实现了 UICollectionView。我想在每个单元格上启用分页,以便每个单元格在滚动经过它时都会落在圆圈的中间。 (如下所示)我尝试了几种分页方式,但这些方式并没有直接位于圆圈的中心(如第二张图片所示)。发生的事情是,单元格被分页到左侧,我希望有一个 20 的插图,以便它适合圆圈

enter image description here enter image description here

为了在 View 首次加载时使当前日期显示在圆圈的左侧,我将语义设置为 Force Right-to-Left 并且我还设置了 edgeInsets是:

left: screenWidth-62, right: 20)

单元格的宽度为 42,侧面的插图为 20,因此第一个单元格将位于带有这些插图的圆圈中。所以当 View 第一次加载时, Collection View 看起来像这样:

enter image description here

我基本上希望每个单元格在滚动经过时落在这个圆圈内(如果滚动停止)

这是我目前所拥有的:

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    if scrollView == self.collectionView {
        var currentCellOffset = self.collectionView.contentOffset
        currentCellOffset.x += (self.collectionView.frame.width / 2) + 20
        if let indexPath = self.collectionView.indexPathForItem(at: currentCellOffset) {
            self.collectionView.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)
        }
    }
}

还有这个:

collectionView.decelerationRate = UIScrollView.DecelerationRate.fast

有人知道怎么解决吗?

谢谢

最佳答案

我创建了一个自定义 Collection View 布局,用于按单元而不是屏幕分页

我还在 README 中概述了一些自定义示例的不同方法

检查一下 here

如果您对此有任何疑问或需要更多帮助,请告诉我

关于swift - 在 UICollectionView 中的小单元格上使用左插图进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57560562/

相关文章:

ios - 在ios中获取Scrollview tabview标签卡住了

swift - 在 ScrollView 中缩放/滚动部分图像

ios - 错误 : Multiple inheritance from classes 'UICollectionViewController' and 'UICollectionViewLayout'

swift - 在终端中执行 Swift 脚本

swift - 如何在 Xcode swift 中以编程方式更改 UIBarButtonItem 功能

ios - 如何找出哪个类(class)插入了我?

ios - 为什么单元格与标签的宽度相同?

ios - @available 属性不适用于 XCTest 类或方法

objective-c - 两个 UICollectionView 实例共享同一个 UICollectionViewFlowLayout 实例?

swift - UIScrollView 中图像之间的边距