1
// Animate moving the cards into position
    [UIView animateWithDuration:0.5
                          delay:0.0
                        options:UIViewAnimationOptionCurveLinear
                     animations: ^{ card.frame = cardFrame; }
                     completion: ^ (BOOL finished) {
                         if (finished) {
                             [UIView animateWithDuration:1.0
                                                   delay:3.0
                                                 options:UIViewAnimationOptionTransitionFlipFromRight
                                              animations: ^ { card.image = [UIImage imageNamed:@"imgBack.png"]; }
                                              completion:NULL];
             }
                     }];

何らかの理由で、2 番目の遅延は遅延しません。アニメーションはすぐに続きますか?

4

1 に答える 1

2

あなたが実際に抱えている問題は、ネストとは何の関係もありません。UIImageViewプロパティをアニメーション化できないsetImage:ため、コードは到達するとすぐに実行されます。

画像プロパティの設定を遅らせるだけで問題ない場合は、次を使用してください。

double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    card.image = newImage;
});

画像の変化をアニメーション化する場合は、 を調べてCATransition、画像ビュー内で変化する画像にトランジション効果を適用することをお勧めします。

于 2013-08-08T21:25:39.307 に答える