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

最後に問題を解決しました。この質問に似ています iOS 7でUICollectionViewCellを更新するには? -applyLayoutAttributes: が正しく呼び出されませんでした。カスタム UICollectionViewLayoutAttributes サブクラスの isEqual: メソッドをオーバーライドし、super -applyLayoutAttributes: を呼び出すことで問題を解決できました。

于 2013-11-14T02:24:59.420 に答える