Следующее, помещенное в контроллер представления, а не в представление, работает многократно много раз.
- (void)viewDidLoad {
[super viewDidLoad];
UISwipeGestureRecognizer *sw = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFromD:)];
[self.view addGestureRecognizer:sw];
[sw release];
}
-(void)handleSwipeFromD:(UISwipeGestureRecognizer *)recognizer
{
BOOL operationStart = YES;
if (operationStart)
{
//self.view.la
// self.view.commonLayer = [self.layer presentationLayer];
// self.view.layer.transform = commonLayer.transform;
[self.view.layer removeAnimationForKey:@"rotationAnimate"];
CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.fromValue = [NSNumber numberWithFloat:0.0 * M_PI];
rotationAnimation.toValue = [NSNumber numberWithFloat:2.0 * M_PI];
//rotationAnimation.toValue = [NSNumber numberWithFloat: 2.5 * 3.15 ];
rotationAnimation.duration = 1.0;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = 1.0;
//rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
[self.view.layer addAnimation:rotationAnimation forKey:@"rotationAnimate"];
}
}
Однако это не та иерархия слоев, которую вы используете, так как я удалил все ссылки на "commonLayer", и я действительно не понимаю из вашего кода какую роль он играет.