CAKeyframeAnimations を使用しているとのことですが、UIView プロパティ (origin、bounds、alpha など) の単純なアニメーションが必要な場合は、プロパティの変更を begin/commit ブロックでラップして指定できます。アニメーションの完了時に呼び出されるデリゲート メソッド。デリゲート メソッドが 3 つの引数を取る限り、好きなように呼び出すことができます。例えば:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:ANIMATIONDURATIONINSECONDS];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(yourAnimationHasFinished:finished:context:)];
// Change property or properties here
[UIView commitAnimations];
メソッドを引き起こします
- (void)yourAnimationHasFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context;
呼ばれること。これにより許可される任意の名前付けにより、異なるアニメーションの完了の処理を分離する手段が提供されます。単純なアニメーションにはこれを好みます。
CALayers と直接対話するより複雑なアニメーションを処理するために、animationDidStop:finished: デリゲート メソッドは終了したアニメーション オブジェクトを返します。複数のアニメーションのデリゲートである 1 つのインスタンスを作成する場合、animationDidStop:finished: メソッド内の switch ステートメントで使用するために、アニメーションの NSMutableDictionary と NSNumbers を作成できます。CAKeyframeAnimation を作成するときは、setObject:forKey: を使用して一致する番号に割り当ててから、objectForKey: を使用して完了メソッドでそのアニメーションに対応する番号を見つけ、それを switch ステートメントにフィードします。