Правильный способ пометить NSAnimation для сортировки animationDidEnd: сообщения

Мой вопрос довольно прост: у меня есть класс, который является делегатом нескольких NSAnimations, и мне нужно будет дать имя / идентификатор моей NSAnimation, чтобы сортировка всех -(void)animationDidEnd:(NSAnimation *)animation сообщения могут быть сделаны легко.

Есть идеи, как этого добиться?

РЕДАКТИРОВАТЬ: Должен ли я анализировать отсутствие ответа, как означает, что я не должен использовать NSAnimation совсем?

Источник: NSAnimation не рекомендуется?

1 ответ

Решение

Что ж, оказывается, анимации должны обрабатываться Core Animation: она более мощная, чем NSAnimationболее систематичным, и вы можете пометить анимацию с помощью ключа:

#import <QuartzCore/QuartzCore.h>

CALayer* myLayer;

CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
anim.path = [NSBezierPath bezierPathWithRect:NSMakeRect(0,0,100,100)];
anim.repeatCount = 0;
anim.duration = 3.0;
[bounceLayer addAnimation:anim forKey:@"MyAnimationKey"];

Кроме того, есть хорошие методы делегатов, такие как: - (void)animationDidStart:(CAAnimation *)theAnimation чтобы достичь того, что мы имели в виду.

Другие вопросы по тегам