Я бы использовал более мощный animateWithDuration:delay:options:animations:completion:
метод на UIView
. См. Просмотр руководства по программированию или Справочник по классам UIView
Более конкретно, это может выглядеть так: метод занимает два блока: один для самой анимации и один блок, который выполняется после завершения анимации. На первый взгляд это может показаться немного странным, но это всего лишь синтаксис блока.
[UIView animateWithDuration:1.0 delay:0.f options:(UIViewAnimationOptionAutoreverse| UIViewAnimationOptionRepeat)
animations:^{
playerScore.alpha=1.f;
} completion:^(BOOL finished){
playerScore.alpha=0.f;
}];
Это решение для iOS версии 4 или выше. Если вы хотите настроить таргетинг на версии до этого, вы должны использовать обратный вызов делегата. Установите селектор, который будет выполнен, когда анимация сделана следующим образом:
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(flashingDidStop:finished:context:)];
//with the callback method
- (void)flashingDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
{
//code to execute in your case
playerScore.alpha = 0.f;
}