多个动画搞砸了

时间:2016-07-14 19:06:08

标签: swift

在集合视图中,我有每个单元格都有图像的单元格。 当调用集合的代表时,我根据数据为每个单元格图像设置不同的动画。

每个要添加的新单元格,我删除所有其他单元格并重新加载该集合的数据。

在我添加几个单元格后,说单元格1具有拉伸动画,单元格3具有缩放动画,然后单元格1获得拉伸+缩放。

      func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
        {
            let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! FlowViewCell
            cell.image.image=UIImage(named: moduleImage as String)
            animate(moduleAnimation, image: cell.image)
             ....


            func animate (kind:NSString, image:UIImageView)
            // here I check what animation to apply (different between cells)

           // *** can be 
          CABasicAnimation(keyPath: "transform.rotation")
          //**** or
          UIView.animateWithDuration(2.0, delay: 0.0, options: [.Repeat, .CurveEaseOut, .Autoreverse], animations: {         
                image.transform = CGAffineTransformMakeScale(0.15, 1.0)

我能做些什么来清除东西吗?我认为可重复使用的细胞与它有关。

修改: 尝试过:cell.image.image=nil,没有成功。

1 个答案:

答案 0 :(得分:1)

修正了它:

    let index = data.count-1
    let indexPath = NSIndexPath(forItem: index, inSection: 0)
    collectionView.insertItemsAtIndexPaths([indexPath])

不应该使用reloadData函数,因为无法保证它会再次使用相同的单元格,并且它对性能没有好处,所以请更新相关的单元格。