在UICollectionView-Swift 2.0中滑动动画以删除单元格

在UICollectionView-Swift 2.0中滑动动画以删除单元格,swift,animation,uicollectionview,uicollectionviewcell,Swift,Animation,Uicollectionview,Uicollectionviewcell,我创建了一个带有UICollectionView的应用程序,如下图所示: 增加了两个手势: 第一个(向上)将删除该单元格 第二个(向下)将更新单元格(获取CoreData的新数据)。 这些函数工作正常,但没有动画。iOS有一个非常酷的动画,将单元格向上拖动,然后单元格消失 我是一个动画初学者,所以我有点迷路时,它 我的问题是:如何添加占用整个单元格的动画 我在网站上读到了一些答案,但都在Object-C()中 有人能帮我吗?在UICollectionView的单元格上实现动画的最佳方法是覆盖其

我创建了一个带有
UICollectionView
的应用程序,如下图所示:

增加了两个手势:

第一个(向上)将删除该单元格

第二个(向下)将更新单元格(获取CoreData的新数据)。 这些函数工作正常,但没有动画。iOS有一个非常酷的动画,将单元格向上拖动,然后单元格消失

我是一个动画初学者,所以我有点迷路时,它

我的问题是:如何添加占用整个单元格的动画

我在网站上读到了一些答案,但都在Object-C()中


有人能帮我吗?

UICollectionView
的单元格上实现动画的最佳方法是覆盖其布局
UICollectionViewLayout
。其方法将返回要显示/插入/删除的单元格的布局属性

例如:我创建了一个类
KDCollectionViewFlowLayout
继承
UICollectionViewFlowLayout
,并覆盖delete属性

class KDCollectionViewFlowLayout: UICollectionViewFlowLayout {

  override func finalLayoutAttributesForDisappearingItemAtIndexPath(itemIndexPath: NSIndexPath) -> UICollectionViewLayoutAttributes? {
        let attribute = super.finalLayoutAttributesForDisappearingItemAtIndexPath(itemIndexPath)

        attribute?.transform = CGAffineTransformTranslate(attributes.transform, 0, ITEM_SIZE)
        attribute?.alpha = 0.0
        return attribute

    }
}
现在,您需要将此flowLayout的对象指定给viewDidLoad中的集合视图,或者您可以通过故事板来指定它

let flowLayout = KDCollectionViewFlowLayout()
self.collectionView?.setCollectionViewLayout(flowLayout, animated: true)
现在,当您在
collectionView
上执行任何删除操作时,都可以将在中定义的单元格转换为
finalLayoutAttributesForDisappearingItemAtIndexPath
方法

更新

您需要使用批处理操作从集合视图中删除项目

collectionView.performBatchUpdates({ () -> Void in
   //Array of the data which you need to deleted from collection view
    let indexPaths = [NSIndexPath]()
    //Delete those entery from the data base. 

    //TODO: Delete the information from database

    //Now Delete those row from collection View 

    collectionView.deleteItemsAtIndexPaths(indexPaths)

}, completion:nil)

对,在第一个例子中,我试图适应我的代码,但没有成功。我的代码分为三部分:一个类和两个扩展。我如何在代码中使用他的示例?我比最初更困惑…对不起,但我没有在这里工作,你可以发布一个链接来下载你的示例,让我看看你是如何组织一切的?@James,非常适合删除动画。James你的应用看起来很棒!詹姆斯,你有没有按你想的那样工作?希望在Swift中实现完全相同类型的功能。如果你的应用程序也能正常工作的话,我很想看看你的应用程序!