UIV ve dos animaciones que coexisten

¿Cómo puedo hacer que una animation continúe para siempre después de llamar a una segunda animation? Por ejemplo:

1) iniciar un object pulsando 2) moverlo mientras está pulsando 3) sigue pulsando

Todo funciona excepto que la segunda animation detiene el primero indefinidamente. A continuación se muestra un ejemplo de código:

//Pulsate ** [UIView animateWithDuration:0.25 delay:0 options: (UIViewAnimationCurveEaseOut | UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionRepeat) animations:^{ CGAffineTransform currentTransform = self.transform; CGAffineTransform newTransform1 = CGAffineTransformScale(currentTransform, .95, .95); [self setTransform:newTransform1]; CGAffineTransform newTransform2 = CGAffineTransformScale(currentTransform, 1, 1); [self setTransform:newTransform2]; } completion:nil]; //Move ** [UIView animateWithDuration:0.30 delay:0 options: (UIViewAnimationCurveEaseOut | UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionBeginFromCurrentState ) animations:^{ [[(UIPinchGestureRecognizer*)sender view] setCenter:CGPointMake(myAppDelegate.MCViewReference.center.x-300, myAppDelegate.MCViewReference.center.y)]; } completion:^(BOOL finished){ }]; 

No podrás hacer esto con las animaciones basadas en bloques como las tienes aquí. Tendrá que dividir sus animaciones utilizando animaciones explícitas con CABasicAnimation . Cree una animation para el efecto pulsante y configúrelo para que se repita indefinidamente. Luego puedes moverlo estableciendo el centro (ya sea animado o no animado).

 CABasicAnimation *pulsation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; pulsation.fromValue = [NSNumber numberWithFloat:0.95f]; pulsation.toValue = [NSNumber numberWithFloat:1.f]; pulsation.duration = 0.25f; pulsation.autoreverses = YES; pulsation.repeatCount = INFINITY; [self.layer addAnimation:pulsation forKey:@"pulse"]; 

Tan pronto como agregue la animation a la capa, comenzará a animar. Para eliminar la animation, simplemente llama [self.layer removeAnimationForKey:@"pulse" o removeAllAnimations:

Podría separar sus animaciones en fases y usar el bloque de finalización para comenzar la siguiente fase.