gpt4 book ai didi

swift - 多个动画困惑

转载 作者:行者123 更新时间:2023-11-30 10:01:18 25 4
gpt4 key购买 nike

在 Collection View 中,我的每个单元格都有图像。当集合的委托(delegate)被调用时,我根据数据为每个单元格图像设置不同的动画。

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

发生的情况是,在我添加几个单元格后,假设单元格 1 有拉伸(stretch)动画,单元格 3 有缩放动画,然后单元格 1 得到拉伸(stretch)+缩放。

      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,没有成功。

最佳答案

用这个修复它:

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

不应使用reloadData函数,因为不能保证它会再次使用相同的单元格,并且它对性能没有那么好,因此应更新相关的单元格。

关于swift - 多个动画困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38382318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com