首页 > 解决方案 > UICollectionView isPagingEnabled

问题描述

我在collectionView.

我想按部分滚动。我有 3 个部分。我想在视图中居中。

首先,它看起来像我想要的

在此处输入图像描述

但是当我接下来滚动时......左右插图是不同的。

在此处输入图像描述

最后一个也坏了。

在此处输入图像描述

我用 function 尝试过scrollViewDidEndDecelerating,但没有用。它的动画很丑。

我的collectionView布局代码。

    let layout = UICollectionViewFlowLayout()
    layout.sectionInset = UIEdgeInsets(top: 0, left: 15, bottom: 0, right: 15)
    layout.minimumLineSpacing = 5
    layout.scrollDirection = .horizontal

标签: iosswiftuicollectionview

解决方案


You have to implement UICollectionViewDelegateFlowLayout methods to solve this problem.

let minLineSpace = 4

func collectionView(_ collectionView: UICollectionView,
                    layout collectionViewLayout: UICollectionViewLayout,
                    sizeForItemAt indexPath: IndexPath) -> CGSize {

    return CGSize(width: UIScreen.main.bounds.width - minLineSpace, height: collectionView.frame.size.height)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
    return minLineSpace
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsetsMake(0, (minLineSpace / 2), 0, (minLineSpace / 2))
}

Here I have added 4 point spacing between two cells, you can customise this as per your requirement.


推荐阅读