Я пытаюсь изучить базовую анимацию для iOS / iPhone . Мой корневой слой содержит множество подслоев (спрайтов), и они должны вращаться, когда они удаляются ...
Я планировал добавить вращающуюся анимацию, а затем удалить спрайт при вызове animationDidStop. Проблема в том, что слой спрайта не является параметром animationDidStop!
Как лучше всего найти конкретный слой спрайта из animationDidStop? Есть ли лучший способ заставить спрайт вращаться после его удаления? (в идеале я хотел бы использовать kCAOnOrderOut, но у меня не получалось заставить его работать)
-(void) eraseSprite:(CALayer*)spriteLayer {
CABasicAnimation* animSpin = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
animSpin.toValue = [NSNumber numberWithFloat:2*M_PI];
animSpin.duration = 1;
animSpin.delegate = self;
[spriteLayer addAnimation:animSpin forKey:@"eraseAnimation"];
}
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag{
// TODO check if it is an eraseAnimation
// and find the spriteLayer
CALayer* spriteLayer = ??????
[spriteLayer removeFromSuperlayer];
}