1

我在 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: 方法,取决于长按手势和相关标志

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

4

1 回答 1

1

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

于 2013-11-14T02:24:59.420 回答