Хорошо, нашел обходной путь.Вместо этого я использовал методы анимации UIView.Поскольку мою скорость анимации можно изменить / отключить во время анимации, мне нужно было использовать следующий код, чтобы избежать появления нескольких анимаций в одном и том же представлении.
Этот код запускает анимацию:
if (self.currentBlinkFrequency == 0) {
self.shouldContinueBlinking = FALSE;
self.animationIsRunning = FALSE;
} else {
self.shouldContinueBlinking = TRUE;
if (self.animationIsRunning == FALSE) {
self.animationIsRunning = TRUE;
[self blinkAnimation:@"blink" finished:YES target:self.signalImage];
}
}
Вызванный код анимации для метода "blinkAnimation" заимствован из другого поста в stackoverflow здесь
- (void)blinkAnimation:(NSString *)animationId finished:(BOOL)finished target:(UIView *)target
{
if (self.shouldContinueBlinking) {
[UIView beginAnimations:animationId context:target];
[UIView setAnimationDuration:self.currentBlinkFrequency];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(blinkAnimation:finished:target:)];
if ([target alpha] == 1.0f)
[target setAlpha:0.0f];
else
[target setAlpha:1.0f];
[UIView commitAnimations];
}
}