Я пытаюсь изучить core-анимацию для 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];
}