Я получаю уведомление, когда анимация запускается и останавливается, поэтому мой код:
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:)];
[UIView setAnimationWillStartSelector:@selector(animationDidStart:)];
Я реализую эти 2 метода, но animationDidStop:finished:
получил уведомление, а animationDidStart:
- нет.
Вот моя реализация:
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag {
}
- (void)animationDidStart:(CAAnimation *)anim
{
}
Когда я попытался вызвать animationDidStart:
или animationDidStop:finished:
напрямую, мое приложение упало и сообщило, что селектор не найден. Но согласно следующим строкам в CAAnimation.h, если я импортирую платформу QuatzCore, все экземпляры NSObject должны отвечать на эти 2 метода. Правильно ли мое понимание?
/* Delegate methods for CAAnimation. */
@interface NSObject (CAAnimationDelegate)
/* Called when the animation begins its active duration. */
- (void)animationDidStart:(CAAnimation *)anim;
/* Called when the animation either completes its active duration or
* is removed from the object it is attached to (i.e. the layer). 'flag'
* is true if the animation reached the end of its active duration
* without being removed. */
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;
@end