iOS 7 - CoreAnimation不适用于UICollectionViewCell

时间:2013-11-12 12:06:32

标签: ios7 core-animation

我在UICollectionView中有一个摇动单元格图标的简单动画,类似于弹跳板编辑模式。动画在iOS 6中运行良好,但在iOS 7中无效。

以下是示例代码。

- (void)startQuivering
{
    CABasicAnimation *quiverAnim = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    float startAngle = (-1) * M_PI/180.0;
    float stopAngle = -startAngle;
    quiverAnim.fromValue = [NSNumber numberWithFloat:startAngle];
    quiverAnim.toValue = [NSNumber numberWithFloat:3 * stopAngle];
    quiverAnim.autoreverses = YES;
    quiverAnim.duration = 0.12;
    quiverAnim.repeatCount = HUGE_VALF;
    float timeOffset = (float)(arc4random() % 100)/100 - 0.50;
    quiverAnim.timeOffset = timeOffset;
    CALayer *layer = self.layer;
    [layer addAnimation:quiverAnim forKey:@"quivering"];
}

同样地限制颤抖的动画。

- (void)stopQuivering
{
    CALayer *layer = self.layer;
    [layer removeAnimationForKey:@"quivering"];
}

在我的自定义UICollectionViewCell类中的applyLayoutAttributes:方法中调用这些方法,具体取决于长按手势和相关标志

我无法弄清楚问题,所以我需要开发人员的帮助。

1 个答案:

答案 0 :(得分:1)

最后解决了这个问题。它类似于这个问题How to refresh UICollectionViewCell in iOS 7? -applyLayoutAttributes:没有被正确调用,可以通过覆盖自定义UICollectionViewLayoutAttributes子类中的isEqual:方法并调用super -applyLayoutAttributes来解决问题:。