我有一个动画功能,我在应用程序的许多其他部分中使用,它工作得很好:

class func pulse(view: UIView, sizeMultiplier: Float, duration: NSTimeInterval, repeatCount: Float = 1.0) {
    let pulseAnimation = CABasicAnimation(keyPath: "transform.scale")
    pulseAnimation.duration = duration
    pulseAnimation.toValue = NSNumber(float: sizeMultiplier)
    pulseAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    pulseAnimation.autoreverses = true
    pulseAnimation.repeatCount = repeatCount
    view.layer.addAnimation(pulseAnimation, forKey: nil)
}

但是由于某些原因,我无法在UICollectionView中设置单元格的动画
在我的didSelectItemAtIndexPath函数中(正在调用,我用断点检查),我有:
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! ModuleCell
Animations.pulse(cell, sizeMultiplier: 2.0, duration: 0.2, repeatCount: 2)

有什么想法吗?

最佳答案

将代码更改为

let cell = collectionView.cellForItemAtIndexPath(indexPath)

当前创建/出列一个新单元格,而不是检索当前单元格。

09-07 06:43