2011年6月8日水曜日

CALayerでアニメ+終了時のコール


    //トランザクション開始
    [CATransaction begin];
    //csrPRE_MENUのフレーム位置をPRE_Buttons[i]のフレーム位置に変更する
    csrPRE_MENU.frame = PRE_Buttons[i].frame;
    // 終了時にClosePreMenuを呼ぶ
    [CATransaction setValue:^{ [self ClosePreMenu];} forKey:kCATransactionCompletionBlock];
    // ピカピカエフェクト
    CABasicAnimation *pikapikaAnime = [CABasicAnimation animationWithKeyPath:@"opacity"];
    pikapikaAnime.duration = 0.1;
    pikapikaAnime.fromValue = [NSNumber numberWithFloat:1];
    pikapikaAnime.toValue = [NSNumber numberWithFloat:0];
    pikapikaAnime.removedOnCompletion = NO;
    pikapikaAnime.fillMode = kCAFillModeForwards;
    pikapikaAnime.repeatCount = 10;
    [csrPRE_MENU addAnimation:pikapikaAnime forKey:@"pikapika"];
    // トランザクション終了
    [CATransaction commit];

と、ここまでやると、フレームの位置が変わって、透明度がちかちかして、その後ClosePreMenuという関数が呼ばれる。

0 件のコメント: