Правильный способ пометить 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
чтобы достичь того, что мы имели в виду.