在集合视图中,我有每个单元格都有图像的单元格。 当调用集合的代表时,我根据数据为每个单元格图像设置不同的动画。
每个要添加的新单元格,我删除所有其他单元格并重新加载该集合的数据。
在我添加几个单元格后,说单元格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
,没有成功。
答案 0 :(得分:1)
修正了它:
let index = data.count-1
let indexPath = NSIndexPath(forItem: index, inSection: 0)
collectionView.insertItemsAtIndexPaths([indexPath])
不应该使用reloadData
函数,因为无法保证它会再次使用相同的单元格,并且它对性能没有好处,所以请更新相关的单元格。