隐藏带有动画的上部CollectionView单元格(快速4)

时间:2018-09-22 07:59:13

标签: swift animation scroll uicollectionview swift4

如何做到这一点,以便当我向下滚动时,顶部单元格不会像我的一样修剪,并且隐藏在动画中

我的应用程序:

gif

示例: gif

我尝试了 VegaScroll ,但与描述不符

1 个答案:

答案 0 :(得分:1)

在将版式设置为Vega之后,您需要使用委托编辑版式

我已经使用此代码实现了这一目标。

    //in viewDidLoad  
    let layout1 = VegaScrollFlowLayout()

    collectionView.collectionViewLayout = layout1

然后使用CollectionView布局委托

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

    let width = collectionView.frame.width / 3 - 1
    return CGSize(width: width, height: width)
   }

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

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

我没有看到您提供的任何代码,但我认为您会像这样覆盖布局。

collectionView.collectionViewLayout = layout
layout.minimumLineSpacing = 20
layout.itemSize = CGSize(width: collectionView.frame.width, height: 87)
layout.sectionInset = UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0)

这就是导致问题的原因,请注意解决方案的上述代码每行显示3个单元格。

或者您可以简单地通过在ViewDidLoad中使用此代码来实现。

    let layout1 = VegaScrollFlowLayout()

       collectionView.collectionViewLayout = layout1
        layout1.minimumLineSpacing = 1
        let width =  Col1.frame.width / 3 - 1
        layout1.itemSize = CGSize(width: width , height: 87)
        layout1.sectionInset = UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0)

End Result