Получить ключ CAKeyframeAnimationKey в AnimationDidStop - PullRequest
1 голос
/ 30 ноября 2011

У меня есть несколько объектов 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:
 }
 }

1 Ответ

1 голос
/ 30 ноября 2011

Нет открытого API для получения ключа. Если у вас есть объект слоя, вы можете отправить его animationsKeys, чтобы получить массив всех его ключей анимации. Затем вы можете проверить каждый из них, используя animationForKey:.

Самым простым решением (кроме использования отдельного делегата для каждой анимации) является создание NSMutableDictionary. Используйте объект анимации в качестве ключа и его строку ключа анимации в качестве значения.

...