1

で使用transitionFromViewしていUIViewAnimationOptionTransitionFlipFromLeftます。ここで、そのような遷移の数を途中で組み合わせる必要があるため、変換全体の完了を知ることができます。

それを行う最善の方法は何ですか?のようなものを使用して、アニメーション ブロックanimateWithDurationに複数入れることはできますか? transitionFromViewはいの場合、両方のメッセージの期間パラメーターが互いに干渉しますか? その場合、これらの期間パラメーターのそれぞれはどういう意味ですか?

すべての完了ブロックで複数のビューを反転するより良い方法はありますか?

4

1 に答える 1

2

a を使用するCATransactionと、これを簡単に行うことができます。

最初に、QuartzCore フレームワークをターゲットに追加します (まだ追加していない場合)。

次に、まだ追加していない場合#import <QuartzCore/QuartzCore.h>は、ファイルの先頭に追加します。.m

[CATransaction begin]遷移を作成するステートメントの前に実行します。次に、新しいトランザクションの完了ブロックを設定します。次に、アニメーションを作成します。最後に、トランザクションをコミットします。次に例を示します。

- (IBAction)flipButtonWasTapped:(id)sender {
    [CATransaction begin]; {
        [CATransaction setCompletionBlock:^{
            NSLog(@"all animations complete!");
        }];
        [UIView transitionFromView:self.topFrontLabel
            toView:self.topBackLabel duration:1
            options:UIViewAnimationOptionTransitionFlipFromRight
            completion:nil];
        [UIView transitionFromView:self.bottomFrontLabel
            toView:self.bottomBackLabel duration:1.5
            options:UIViewAnimationOptionTransitionFlipFromRight
            completion:nil];
    } [CATransaction commit];
}

アニメーションを作成する前に、完了ブロックを設定する必要があることに注意してください。完了ブロックは、設定後に追加されるアニメーションを待機するだけです。

CATransactionのすべてのメソッドはクラス メッセージであることにも注意してください。トランザクションを表すオブジェクトを取得しません。

于 2013-03-11T18:01:31.263 に答える