1

複数のCAKeyframeAnimationオブジェクトがあり、それぞれに次のような一意のキーがあります。

 .....
 [myAnimation setValues:images];
 [myAnimation setDuration:1];
 ....
 [myLayer addAnimation:myAnimation forKey:@"unique key"];

私の質問は、このような複数のアニメーションがあり、それぞれに一意のキーがある場合、AnimationDidStopメソッドでそれらのキーを取得するにはどうすればよいですか?私はこのようなことをしたいです:

 -(void)animationDidStop:(CAAnimation*)animation finished:(BOOL)flag{
 if(..... ==@"uniquekey1"){
 //code to handle this specific animation here:
 }else if(.... ==@"uiquekey2"){
 //code to handle this specific animation here:
 }
 }
4

1 に答える 1

1

キーを取得するためのパブリック API はありません。レイヤー オブジェクトがある場合は、それを送信しanimationsKeysてすべてのアニメーション キーの配列を取得できます。次に、を使用してそれぞれをテストできますanimationForKey:

最も簡単な解決策 (アニメーションごとに個別のデリゲートを使用する以外) は、NSMutableDictionary を作成することです。アニメーション オブジェクトをキーとして使用し、そのアニメーション キー文字列をその値として使用します。

于 2011-11-30T01:49:02.980 に答える